数组扁平化处理

方法一:使用flat

1
2
const arr = [1,[2,[3,[4,5]]],6];
const res1 = arr.flat(Infinity);

方法二:正则表达式

返回的是一个字符数组

1
2
const res2 = JSON.stringify(arr).replace(/\[|\]/g,"").split(',');
console.log(res2)

方法三:正则表达式改良

利用JSON.parse转化成数组

1
2
const res3 = JSON.parse('['+JSON.stringify(arr).replace(/\[|\]/g,'')+']');
console.log(res3)

方法四:reduce

将数组扁平化之后拼接

1
2
3
4
5
6
7
8
const flatten = arr => {
return arr.reduce(
(pre,cur)=>{
return pre.concat(Array.isArray(cur)?flatten(cur):cur)
},[])
}
const res4 = flatten(arr);
console.log(res4)

方法五:递归

1
2
3
4
5
6
7
8
9
10
11
12
const res5 = [];
const fn = arr => {
for(let i = 0;i<arr.length;i++){
if(Array.isArray(arr[i])){
fn(arr[i]);
}else{
res5.push(arr[i]);
}
}
}
fn(arr);
console.log(res5);

数组扁平化处理
https://blog-theta-ten.vercel.app/2021/08/13/数组扁平化处理/
作者
Chen
发布于
2021年8月13日
许可协议