js扁平化数组

76 阅读1分钟

数组扁平化就是将一个多维数组变为一个一维数组

方法一:ES6的flat方法

  1. flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
  2. Infinity 可展开任意深度的嵌套数组

image.png

方法二:JSON.stringify和JSON.parse方法

`let arr=[ 1 , 2 , [ 3 , 4 , [ 5 , 6 ] ] ]

//先定义一个数组 let res=JSON.stringify(arr).replace(/[|]/g,'')

// 过滤所有的中中括号 res=JSON.parse('['+res+']') console.log('parse方法:',res) `

方法三:reduce方法

image.png

方法四:利用扩展运算符

  1. ES6增加了这个运算符,用于取出对象所有可遍历的属性,放到当前对象内
  2. 查找数组里是否有属性是数组,反复的去扁平,最后返回的数组就是我们想要的了。

image.png

方法五:split和toString()方法共同处理

如果数组中存储元素都为数字,那么我们可以取巧,使用toString方法来解决。

  1. 调用toString方法后,返回的是如上面一样的字符串。
  2. 我们使用split,以逗号为分割成数组,这样就可以实现扁平化了

image.png

方法六:递归

image.png