数组扁平化
:就是讲多维数组转换为一维数组
常用的方法有: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]
哇哦,就是这么简单,其实有些方法原理并没有你想象的那么难~~
加油小伙伴们 ~~ 记得点赞收藏哦 _
网友评论