var oriArray = [ {
id: 6,
text: '网路技术',
parent: 5,
}, {
id: 2,
text: '研发计划',
parent: 1
}, {
id: 3,
text: '产品方案',
parent: 1
}, {
id: 5,
text: '技术方案',
parent: 2
}, {
id: 4,
text: '第二主体'
}, {
id: 1,
text: '中心主题',
children: [{
id: 8,
text: '111',
parent: 1
}]
}, {
id: 7,
text: '77777',
parent: 5
}, ]
function getNewArr(metaArray) {
var newArr = []
metaArray.forEach((item, i) => {
if (!item.hasOwnProperty('parent')) {
newArr.push(item)
} else {
getChildren()
}
})
function getChildren(arr = newArr) {
metaArray.forEach((item, i) => {
arr.forEach(item1 => {
if (item.parent == item1.id) {
if (item1.hasOwnProperty('children')) {
var flag = item1.children.every(childrenItem => {
return childrenItem.id != item.id
})
if (flag) {
item1['children'].push(item)
} else {
return
}
} else {
item1['children'] = []
item1['children'].push(item)
}
getChildren(item1.children)
}
})
})
}
return newArr
}
console.log(getNewArr(oriArray));
输出结果