手写功能函数:递归实现多维数组扁平化

函数设计

功能:

多维数组扁平化

参数

多维数组

返回值

扁平化后的数组

思路

1.函数内部需要初始化一个新的数组(newArr),作为扁平化后的数组容器

2.对于非数组类型的子元素,直接放入newArr

3.对于数组类型的子元素,则需要使用递归的方法去重新进入扁平化的函数,对该子元素内部的子元素重新进行判断与操作

函数实现

        function flatArr(value){
          let newArr = []
          value.forEach((item,index)=>{
            if(toString.call(item) === '[object Array]'){
                newArr = newArr.concat(flatArr(item))
            }else{
                newArr.push(item)
            }
          })
          return newArr
        }

测试

    <script>
        function flatArr(value){
          let newArr = []
          value.forEach((item,index)=>{
            if(toString.call(item) === '[object Array]'){
                newArr = newArr.concat(flatArr(item))
            }else{
                newArr.push(item)
            }
          })
          return newArr
        }
        let Arr = [1,2,3,[4,5,6,[7,8,9]]]
        let newArrs = flatArr(Arr)
        console.log(newArrs,'扁平后的数组')
    </script>

结果如下

猜你喜欢

转载自blog.csdn.net/m0_54741495/article/details/132472945