1、概念
陣列扁平化:就是將乙個多維陣列變成一維陣列
2、實現方式
方法1:reduce和concat方法
思想:遍歷陣列每一項,如果值是陣列,進行遞迴呼叫
reduce方法:從陣列的第一項開始,逐個遍歷到最後,最終迭代陣列的所有項
concat方法:將接收到的引數新增到陣列的末尾
var arr=[1,[2,[3,[4,[5]]]]];function
flatten(arr) ,)
}console.log(flatten(arr));
方法2:es6擴充套件運算子和some方法
思想:對陣列進行一次遍歷,如果arr中含有陣列則進行一次擴充套件運算子
some方法:對陣列中的每一項執行給定的函式,如果該函式對任一項返回true,該方法返回值為true
擴充套件運算子:將乙個陣列轉為用逗號分隔的引數序列(可以將二維陣列轉換為一維陣列)
function flatten(arr)return arr;
}console.log(flatten(arr));
方法3:遞迴
思想:陣列中的每一項如果是陣列,進行遞迴呼叫,否則直接加入到新的陣列中
functionflatten(arr)
else
}return
result;
}
方法4:tostring(或者join) & split
思想:用tostring或者join方法將陣列轉變為字串,然後,再用split方法分割還原為陣列
functionflatten(arr) )
}
js 實現陣列扁平化
什麼是陣列扁平化?陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列首先讓我們思考乙個這樣的題目 假如有乙個陣列 var arr 1,2,3,4 我們怎麼能把arr變成 1,2,3,4 呢?即讓多維陣列降維,轉換為只有一層的陣列 如果用過lodash的話,我們知道 flatten 和 flattende...
js陣列原生方法的實現
1 陣列遍歷foreach 自定義foreach param fn 待執行方法 function foreach fn 2 陣列對映map 自定義map param fn 待執行方法 function map fn return list 3陣列過濾filter 自定義filter param fn...
js中陣列扁平化處理
什麼是陣列扁平化?陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列 實現基本方式 1 對陣列的每一項進行遍歷。2 判斷該項是否是陣列。3 如果該項不是陣列則將其直接放進新陣列。4 是陣列則回到1,繼續迭代。5 當陣列遍歷完成,返回這個新陣列。let arr1 1,2,a b 中 文 1,2,3,11,...