个人对于数组扁平化的实现方式

柔情痞子 提交于 2020-01-06 22:47:47

Array.flat()是实现数组扁平化的一个api,在学习的过程中我自己实现了一下扁平化,如果有不对的地方望指正:

let arr = [3,5,[3,6,[3,5]],4,[3,5]]  //arr数组实现扁平化的方法

1,

function flatten(arr) {  
   return arr.reduce((result,item) => {
    return result.concat(Array.isArray(item)?flatten(item):item)
   },[])
}// 用reduce的方法实现

2,

 function flatten2(arr){
  return arr.join(',').split(",").map(function(item){
        return parseInt(item)
  })
 }
//将数组转为字符串,然后再转换为数组

3,

function flatten3(arr){
 let result = []
 arr.map((item) =>{
 if(Array.isArray(item)){
  result = result.concat(flatten3(item))
  
 }else result.push(item)
 })
 return result
}
let arr3 = flatten(arr)
let arr4 = flatten2(arr)
let arr5 = [].concat(...arr)
let arr6 = flatten3(arr)// 结果都是一样的
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!