树结构数据中,结构为[{...children:[{}],...},{},{}]
,子元素保存在children
中,假设目前有一组数据,现有一个对象,需要遍历数据,找到对象的父级,push
到父级的children
中
javascript">// id:需要push的数据的父级id
// data:整个树数据
// arr:需要push的数据,多个子对象可以使用数组,push时是用的...arr,如果是单个对象则不需要再解构
const handleData = (id, data, arr) => {
data.forEach(item => {
if (item.id === id) {
item.children ? item.children.push(...arr) : item.children = [...arr]
} else {
if (item.children) {
handleData(id, item.children, arr)
}
}
})
return data
}
let data = handleData(id, .data, arr)
假设一个数据:
javascript">// 树结构数组
let data = [
{
id:1,
name:"aaaa",
children:[]
},
{
id:2,
name:"bbbb",
children:[]
},
{
id:3,
name:"cccc",
children:[]
}
]
// 需要push进去的子数据,需要push到id=1的数组的children中
let children = [
{
id:4,
name:"aaaa-1",
children:[]
},
{
id:5,
name:"aaaa-2",
children:[]
}
]
// 执行
data = handleData(1, data, children)