Javascript 如何递归获取父-子名称
我试着让所有孩子的名字都成为他们的父母。我正在创建一棵树:Javascript 如何递归获取父-子名称,javascript,jquery,Javascript,Jquery,我试着让所有孩子的名字都成为他们的父母。我正在创建一棵树: GUI.prototype.buildTree = function(elements, parentId){ var response = []; for(var elem in elements){ if(elements[elem]['parent'] == parentId){ var childrens = this.buildTree(elements, element
GUI.prototype.buildTree = function(elements, parentId){
var response = [];
for(var elem in elements){
if(elements[elem]['parent'] == parentId){
var childrens = this.buildTree(elements, elements[elem]['id']);
if(childrens.length > 0){
elements[elem]['childrens'] = childrens;
}
response.push(elements[elem]);
}
}
return response;
};
我从buildTree方法输入的内容如下所示:
[{
"id" : 'x',
"parent" : 0,
"childrens" : [{
"id" : 'y',
"parent" : "x",
"childrens" : [{
"id" : 'z',
"parent" : "y"
}]
}]
}]
我想输出如下内容:
[{
"id": "x",
"childrenNames": ["y", "z"]
}]
最好的办法是用buildTree方法,但我不知道怎么做。但更简单的是,我认为应该为它创建另一种方法
我请求您的帮助。此建议访问所有节点并获取节点的所有子节点 函数getChildren(数组){ var结果=[]; array.forEach(函数iter(a){ var children=[]; push({id:a.id,children:children}); 这个。推(a.id); if(Array.isArray(a.children)){ a、 儿童。forEach(国际热核实验堆,儿童); Array.prototype.splice.apply(this[this.length,0].concat(children)); } }, []); 返回结果; } var data=[{id:'x',父:0,子:[{id:'y',父:“x”,子:[{id:'z',父:“y”}]}]; log(getChildren(data))代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}