【发布时间】:2021-10-02 05:20:06
【问题描述】:
const newFolders = [{name:'new1'},{name:'new2'}]
let folders = [
{
name: 'root',
children:[
{name:'folder1'},
{
name:'folder2',
children:[
{name: 'folder2.1'},
{
name: 'folder2.2',
children: [
{name:'target folder'}
]
},
{name: 'folder2.3'},
]
},
{name:'folder3'}
]
}
]
// I don't want to use the below line to assign the newFolders variable to the target object
folders[0].children[1].children[1].children[0].children = newFolders;
// instead I have below
const child_index_map = [0,1,1,0]; // it should be any length for future access
// what I tried is (unsuccessful)
let temp = folders;
child_index_map.forEach((i, index)=>{
temp = temp[i].children;
if(index === child_index_map.length - 1){
temp = newFolders;
}
});
let folders = temp;
这是我的文件夹结构,它应该是任意数量的孩子。
我想访问 {name:'target folder'} 对象并将newFolders 分配给该对象,但不是像folders[0].children[1].children[1].children[0].children = newFolders; 这样的典型方式
而不是上面的,我有索引数组const child_index_map = [0,1,1,0]
有没有办法
预期结果
let folders = [
{
name: 'root',
children:[
{name:'folder1'},
{
name:'folder2',
children:[
{name: 'folder2.1'},
{
name: 'folder2.2',
children: [
{
name:'target folder',
children: [{name:'new1'},{name:'new2'}] // <--- this
}
]
},
{name: 'folder2.3'},
]
},
{name:'folder3'}
]
}
]
【问题讨论】:
标签: javascript arrays object javascript-objects