根据树节点的位置,修改对应的节点值?

如题,根据树形结构中的节点位置,修改节点的值,例如
[
{
id:0,
pos:'0',
name:'a-0',
children:[
{
id:1,
pos:'0-0',
name:'b-1'
},
{
id:2,
pos:'0-1'
name:'b-2',
},
{
id:3,
pos:'0-2'
name:'b-3',
children:[
{
id:4,
pos:'0-2-0'
name:'c-4',
},
{
id:5,
pos:'0-2-1',
name:'c-5',
children:[
{
id:6,
pos:'0-2-1-0'
name:'d-6',
}
]
}
]
}
]
}
]
已知位置'0-2-1'表示'c-5',可以通过这个位置修改树的值。希望能够通过不递归查询树的方式修改值,可扩展。谢谢
大话西游666
浏览 598回答 2
2回答

繁星淼淼

供参考'0-2-1'.split('-').reduce((node,p,i,pos)=>i===pos.length-1?node[p].name:node[p].children,data)

不负相思意

对应的方法:functionsetTreeDataByPos(,pos,callback){constposArr=pos.split('-')posArr.reduce((node,p,i,pos)=>{if(i===posArr.length-1){callback(node,i)}else{returnnode[p].children}},tree)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript