JS递归问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS递归问题相关的知识,希望对你有一定的参考价值。

我有一段json 如果递归成另外一种格式json:

需要转换的JSON

var testJson =
name:"codesystem",
newValue:undefined,
loopFlag:0,
children:[

name:"infosystem",
newValue:1,
loopFlag:0
,

name:"dataitems",
newValue:undefined,
loopFlag:0,
children:[

name:"dataitem",
newValue:undefined,
loopFlag:1,
children:[

name:"code",
newValue:1,
loopFlag:0
,

name:"name",
newValue:1,
loopFlag:0

]
,

name:"dataitem",
newValue:undefined,
loopFlag:0,
children:[

name:"code",
newValue:1,
loopFlag:0
,

name:"name",
newValue:1,
loopFlag:0

]

]

]


需要转成的格式如下:



"stm":

"codesystem":

"infosystem":"1",

"dataitems":

"dataitem":[



"code":"1",

"name":"1"

,



"code":"1",

"name":"1"



]







参考技术A var testJson=要转换的json数据此略;
var newJson=stm:;
var n1=testJson.name;
var n2=testJson.children[0].name;
var dis=testJson.children[1];
newJson.stm[n1]=;
newJson.stm[n1][n2]=testJson.children[0].newValue;
newJson.stm[n1][dis.name]=;
dis.children.forEach(function(o,i)
   if(!newJson.stm[n1][dis.name][o.name])newJson.stm[n1][dis.name][o.name]=[];
   o.children.forEach(function(o1)
      if(!newJson.stm[n1][dis.name][o.name][i])newJson.stm[n1][dis.name][o.name][i]=;
      newJson.stm[n1][dis.name][o.name][i][o1.name]=o1.newValue;
   );
);
console.log(newJson);

参考技术B 泛彼柏舟,亦泛

以上是关于JS递归问题的主要内容,如果未能解决你的问题,请参考以下文章

js分享

从"汉诺塔"经典递归到JS递归函数

js算法初窥04(算法模式01-递归)

JS递归

浅谈-js递归函数

浅谈-js递归函数