js数组扁平化处理
let arr = [{id: 1,children: [{id: 2,children: [{id: 20}]}]},{id: 3, children: [{id: 4,children: [{ id: 30 } ] }] },{id: 5,children: [ { id: 6, children: [ { id: 40} ]} ]}]
方法1
function flat(data = []) { let newArr = [] data.map((item) => { if(item.children){ newArr = [...newArr,item,...flat(item.children)] }else{ newArr.push(item) } }) return newArr } console.log('flat', flat(arr))
方法2
function flat(data = []) { return [].concat(...data.map(item => [].concat(item,...flat(item.children)))) } console.log('flat', flat(arr))