陣列扁平化
阿新 • • 發佈:2020-12-31
陣列扁平化
1.什麼是陣列扁平化
就是把一個多維陣列轉換為一維陣列
2.實現的基本方式
1、對陣列的每一項進行遍歷
2、判斷該項是否是陣列
3、如果該項不是陣列就要把該項放到一個新數組裡
4、是陣列的話就回到1,繼續迭代
5、陣列遍歷完成,返回新陣列
es6中的flat函式也可以實現陣列的扁平化
let arr1 = [1,2,['a','b',['中','文',[1,2,3,[11,21,31]]]],3];
console.log( arr1.flat( Infinity ) );
擴充套件運算子
//ES6 增加了擴充套件運算子,用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中:
var arr = [1, [2, [3, 4]]];
console.log([].concat(...arr)); // [1, 2, [3, 4]]
//我們用這種方法只可以扁平一層,但是順著這個方法一直思考,我們可以寫出這樣的方法:
// 改進
var arr = [1, [2, [3, 4]]];
function flatten(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}
console.log(flatten (arr))