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;
This is my folder structure and it should be any number of childrens.
I want to access the {name:'target folder'} object and assign newFolders
to the object, but not the typical way like folders[0].children[1].children[1].children[0].children = newFolders;
instead of the above, I have index array const child_index_map = [0,1,1,0]
is there any possible way
Expected result
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'}
]
}
]