手写lodash库里面的flattenDeep函数

98 阅读1分钟

手写loadsh函数的第二天

<script>
      // 初始数组
      const arr = [1, [2, [3, [4]], 5]];
      // 递归函数,用于深度展平数组
      function flattenDeep(arr) {
        return arr.reduce((result, currentItem) => {
          // 如果当前元素是数组,递归调用 flattenDeep 函数,继续展平
          if (Array.isArray(currentItem)) {
            return result.concat(flattenDeep(currentItem));
          } else {
            // 如果当前元素不是数组,直接添加到结果数组中
            return result.concat(currentItem);
          }
        }, []);
      }
      // 调用展平函数并输出结果
      console.log(flattenDeep(arr));
    </script>