美文网首页
数组扁平化 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