87,996
社区成员
发帖
与我相关
我的任务
分享
var obj = [
{
"id": 1,
"name": "大天使1",
"children": [{
"id": 2,
"name": "大天使2",
"children": [{
"id": 3,
"name": "大天使3",
"children": [{
"id": 4,
"name": "大天使4",
"children": []
}]
}]
}]
},
{
"id": 5,
"name": "大天使5",
"children": []
},
{
"id": 6,
"name": "大天使6",
"children": []
}
]
需求是这样的, 假如上边是后台返回的数据,我要把数据变成一层, 也就是想要这样:
var obj = [
{"id": 1, "name": "大天使1"},
{"id": 2, "name": "大天使2"},
{"id": 3, "name": "大天使3"},
{"id": 4, "name": "大天使4"},
{"id": 5, "name": "大天使5"},
{"id": 6, "name": "大天使6"}
]
请问要如何递归处理?
recursion = function (data, children = 'children', arr = []) {
for (let i = 0; i < data.length; i++) {
arr.push({ id: data[i].id, name: data[i].name })
if (data[i][children] && data[i][children].length) {
recursion(data[i][children], (children = 'children'), arr)
}
}
return arr
}