问题描述
const data = [{name: "item1",key: 1},{name: "item2",key: 2,children: [{name: "item3",key: 3}]}]
每个项目都可以有子项和子项中的对象)
什么时候点击编辑函数应该通过按键或给定对象给出找到的对象:
findobj(3) //按键查找
//result {name: "item3",key: 3}
编辑后什么时候点击保存编辑过的对象应该保存在自己的位置:
saveEditing({name: "editedname",key: 3})
//result [{name: "item1",children: [{name: "editedname",key: 3}]}]
解决方法
按关键字查找项目
function findItemByKey(data,key){
for(let node of data){
if(node.key === key){
return node;
}
if(node.children){
let result = findItemByKey(node.children,key)
if(result) {
return result;
}
}
}
return undefined;
}
let result = findItemByKey(data,3);
console.log(result); // { name: "item3",key: 3 }
按键保存项目
function saveItemByKey(data,key,name){
let result = findItemByKey(data,key);
if(result){
result.name = name;
}
}
只是一些粗略的解决方案。您应该可以从那里对其进行自定义。
,r77504
M PathA/Data.xml
r77103
M PathB/SubPathB/Home.xml
M PathB/SubPathC/YaDa.xml
r76498
M PathA/Data.xml