扁平化数组
- 即将数组展开,例如[1,[2,[3]]]转化为[1,2,3];
实现方式
1.es6方法:flat
arr.flat(Infinity);
2.正则
JSON.stringify(arr).replace(/[|]/g,'').split(',');
缺点:数据类型都会变为字符串
改良版:
JSON.parse('[' + JSON.stringify(arr).replace(/[|]/g,'') + ']')
3.递归
let arr = [1,[2,[3]]]
const result = [];
const fn = arr => {
for (let index = 0; index < arr.length; index++) {
if(Array.isArray(arr[index])){
fn(arr[index]);
}else{
result.push(arr[index])
}
}
}
fn(arr);
4.reduce
let arr = [1,[2,[3]]]
let flatten = arr => {
return arr.reduce( (pre, cur)=>{
console.log('1',pre, cur)
return pre.concat(Array.isArray(cur)?flatten(cur):cur);
},[])
}
const res = flatten(arr);