如何优雅的给多维数组降维

在项目开发过程中经常会碰到需要给多维数组降维的需求,而现在网上存在的解决方案中大多都使用递归的方式,性能上消耗较大,且代码冗余,不直观,而且大多都只能进行二维降解,例如flatMap等,而且还存在兼容问题。

有车以后前端团队在开发过程中琢磨出了一种数组降维的新方式,通过使用es6的扩展运算符可以十分优雅的进行多维数组的降维,同时摈弃了递归的做法,带来的性能上极大的提升,在数组嵌套较深的情况下都能成功降维为一维数组,以下是实现的代码

     let arr = [[1],[9, [6, 8, [5, [10]]]]]
       function flatMap(arr) {
    for (let i = 0; i < arr.length; i++) {
      if (Array.isArray(arr[i])) {
         let tempArr = arr[i]
       arr.splice(i, 1, ...tempArr)
       i--
}
}
 return arr  //[1,9,6,8,5,10]
}
复制代码

转载于:https://juejin.im/post/5bc828a95188255c6815b2e2

你可能感兴趣的:(如何优雅的给多维数组降维)