美文网首页
数组扁平化 Flat() 方法的原理

数组扁平化 Flat() 方法的原理

作者: 酷酷的凯先生 | 来源:发表于2020-12-07 11:26 被阅读0次

    数组扁平化:就是讲多维数组转换为一维数组
    常用的方法有:flat()、reduce、toString & spl、join & split、扩展运算符 和 递归。
    今天我们来探究一下 Flat() 方法实现原理 -- 递归

    # 上代码

    // 首先来个 匿名自执行 函数(有地方也叫闭包)
    ~function(){
      // 定义 自己的函数
      function myFlat(){
        let result = [], _this = this;
        // 定义 递归函数
        let fn = (arr)=>{
          for(let i = 0; i< arr.length; i++){
            let item = arr[i];
            // 判断是否是 数组(是否继续递归)
            if(Array.isArray(item)){
              fn(item);
              continue;
            }
            result.push(item);
          }
        }; 
        fn(_this);
        return result;
      }
      // 放在数组原型上
      Array.prototype.myFlat = myFlat;
    }();
    

    # 测试

    let arr = [1, 2, [3, 4, [5, 6, [7, 8, [9] ] ] ], 10];
    arr = arr.myFlat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

    哇哦,就是这么简单,其实有些方法原理并没有你想象的那么难~~
    加油小伙伴们 ~~ 记得点赞收藏哦 _

    相关文章

      网友评论

          本文标题:数组扁平化 Flat() 方法的原理

          本文链接:https://www.haomeiwen.com/subject/yrpzwktx.html