Flat的不同实现
flat
数组扁平化,第三种和第四种主要用于面试问题。
// 递归实现
function flat1(arr) {
let res = [];
for (const item of arr) {
if (Array.isArray(item)) {
res = res.concat(flat1(item))
} else {
res.push(item);
}
}
return res;
}
// 通过...解构
function flat2(arr){
while (arr.some(Array.isArray)) {
arr= [].concat(...arr);
}
return arr;
}
// 通过toString 转化为 a,b,c,d 再通过split转为数组 会变成字符串
function flat3(arr){
// arr.join(',').split(',');
return arr.toString().split(',');
}
// 通过JSON解析
function flat4(arr){
return JSON.parse(`[${arr.toString()}]`)
}
var arr = [[3, 12, 1, 2, 2], [2, 3, 5, 5], [6, 7, 8, [11, 12, [12, 13, [14]]]]];
console.log(flat1(arr));
console.log(flat2(arr));
console.log(flat3(arr));
console.log(flat4(arr));

浙公网安备 33010602011771号