替换嵌套数组(树结构)某一对象
首先说明一点,对于树结构想改变其中某个对象的数据可以直接将树结构塞进空数组里面按照嵌套数组的方式操作,就OK了。
接下来直接上代码。
// 模拟数据
const mockdata = [{
"id": "40280007",
"name": "面板7",
"children": [{
"id": "40280006",
"name": "面板6",
"children": []
},
{
"id": "40280004",
"name": "面板4",
"children": [{
"id": "40280003",
"name": "面板3",
"children": []
},
{
"id": "4028e0005",
"name": "面板5",
"children": [{
"id": "40280002",
"name": "面板2",
"children": []
}]
}]
}]
}];
// 模拟需要替换的数据
const replacement = {id: '4028e0005', name: "b", children: [] };
//递归方法
const recursionfunc = (data,updata) => {
for (let i = 0, len = data.length; i < len; i++) {
if(data[i].children){
recursionfunc(data[i].children,updata)
}
if (data[i].id === updata.id) {
data[i] = updata;
}
}
return data;
}
// 执行方法
recursionfunc(mockdata, replacement);