Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 转换为嵌套数组的对象数组 输出结果的根元素是具有相同id和父\u-aid的下一个对象键id的父键id与根键id相同,然后以相同的方式继续。-我尝试了函数,但每次它只给出一个对象时都无法实现 我已经添加了我的代码和我期望的输出_Javascript_Arrays - Fatal编程技术网

Javascript 转换为嵌套数组的对象数组 输出结果的根元素是具有相同id和父\u-aid的下一个对象键id的父键id与根键id相同,然后以相同的方式继续。-我尝试了函数,但每次它只给出一个对象时都无法实现 我已经添加了我的代码和我期望的输出

Javascript 转换为嵌套数组的对象数组 输出结果的根元素是具有相同id和父\u-aid的下一个对象键id的父键id与根键id相同,然后以相同的方式继续。-我尝试了函数,但每次它只给出一个对象时都无法实现 我已经添加了我的代码和我期望的输出,javascript,arrays,Javascript,Arrays,让输入=[ { “id”:“1”, “家长援助”:“1”, }, { “id”:“2”, “家长援助”:“1”, }, { “id”:“3”, ‘家长援助’:“2”, }, { “id”:“4”, ‘家长援助’:“3”, }, { “id”:“5”, ‘家长援助’:“4”, }, { “id”:“6”, ‘家长援助’:“5”, }, { “id”:“8”, ‘家长援助’:“7”, }, { ‘id’:‘7’, ‘家长援助’:“6”, }, { “id”:“9”, ‘家长援助’:“8”, }, {

让输入=[
{
“id”:“1”,
“家长援助”:“1”,
},
{
“id”:“2”,
“家长援助”:“1”,
},
{
“id”:“3”,
‘家长援助’:“2”,
},
{
“id”:“4”,
‘家长援助’:“3”,
},
{
“id”:“5”,
‘家长援助’:“4”,
},
{
“id”:“6”,
‘家长援助’:“5”,
},
{
“id”:“8”,
‘家长援助’:“7”,
},
{
‘id’:‘7’,
‘家长援助’:“6”,
},
{
“id”:“9”,
‘家长援助’:“8”,
},
{
“id”:“10”,
‘家长援助’:“9”,
},
{
“id”:“11”,
‘家长援助’:“10”,
},
{
“id”:“12”,
‘家长援助’:“11”,
},
];
//输出结果应为
常数结果={
"1": {
“价值”:{
“id”:“1”,
“家长援助”:“1”
},
"2": {
“价值”:{
“id”:“2”,
“家长援助”:“1”
},
"3": {
“价值”:{
“id”:“3”,
“家长援助”:“2”
},
"4": {
“价值”:{
“id”:“4”,
“家长援助”:“3”
},
"5": {
“价值”:{
“id”:“5”,
“家长援助”:“4”
},
"6": {
“价值”:{
“id”:“6”,
“家长援助”:“5”
},
"7": {
“id”:“7”,
“家长援助”:“6”
}
}
}
}
}
}
}
}
让输出={};
让getChildObject=(arr,parentID,obj)=>{
如果(!parentID)返回;
返回arr.find(val=>(val.parent_aid===parentID));
}
const MAKENESTEDOBJWITHARRAYITEMSASKEY=(arr)=>{
让rootIndex=arr.findIndex(val=>(val.aid==val.parent_-aid));
设root=arr[rootIndex];
arr.slice(rootIndex)
输出[root.aid]={value:root}
让prev=root.aid;
for(设i=0;i使用ArrayItemsAsKey生成嵌套对象(输入)我做了一些评论,因为我认为您的示例没有正确定义(输出中缺少节点,并且叶没有
属性)

您可以使用
映射
存储最终节点,并通过其
id
值设置关键帧。然后,在再次迭代数据时,可以在这些对象之间建立关系并标识根

代码如下:

let input=[{'id':“1”,'parent_-aid':“1”,},{'id':“2”,'parent_-aid':“1”,},{'id':“3”,},{'id':“4”,'parent_-aid':“3”,},{'id':“5”,'parent_-aid':“4”,},{'id':“6”,'parent",{'id':“parent-aid':“5”,';
让map=newmap(input.map(value=>[value.id,{value}]);
让根生根;
for(输入的let{id,parent_aid}){
if(id!==parent\u-aid)map.get(parent\u-aid)[id]=map.get(id);
else root={[id]:map.get(id)};
}

console.log(root)为什么期望输出的叶没有
属性?为什么期望输出没有id>7的节点?就像pro!