浅识js——数组扁平化

60 阅读1分钟

js基础知识——数组扁平化

一、数组的扁平化

  • 将数组的 '多维数组' 转化成一个 '一维数组'

面试版(要手写以下代码)

//数组:
  const arr = [1,2,3,[4,5,6,[7,8,9,[10,11,12]]]]
//面试版本
    function flat(origin) {
      // 该函数接受一个参数,也就是要实现扁平化的一个数组
      // 1.创建一个空数组
      const newArr = []
      // 2.实现数组的扁平化
      function fn (fnOrigin) {
        fnOrigin.forEach((item) => {
          if (Object.prototype.toString.call(item) === '[object Array]') {
            // 说明item是一个数组,此时需要递归fn函数
            fn(item)
          } else {
            // 执行此分支 说明item不是数组
            newArr.push(item)
          }
        })
      }
      fn(origin)
      // 3.把处理好的数组(newArr)返回出去
      return newArr
    }
    const flatArr = flat(arr)
    console.log(flatArr);

工作中使用

console.log(arr.flat(Infinity)) //Infinity 正无穷