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))

 

  

 

posted @ 2022-07-05 16:19  花笺  阅读(136)  评论(0编辑  收藏  举报