如题,根据树形结构中的节点位置,修改节点的值,例如[{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',可以通过这个位置修改树的值。希望能够通过不递归查询树的方式修改值,可扩展。谢谢
2 回答

繁星淼淼
TA贡献1775条经验 获得超11个赞
供参考'0-2-1'.split('-').reduce((node,p,i,pos)=>i===pos.length-1?node[p].name:node[p].children,data)

不负相思意
TA贡献1777条经验 获得超10个赞
对应的方法: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)}
添加回答
举报
0/150
提交
取消