数组自带方法 实现扁平化
- array.flat(deepth)
- deepth : 指定要提取嵌套数组的结构深度
var arr = [1,[2,[3,[4,5]]],6]
console.log(arr.flat(Infinity))
console.log(arr.flat(3))
递归
var arr = [1,[2,[3,[4,5]]],6]
const newArr = []
const fn = (arr)=>{
for(let i = 0 ;i<arr.length;i++){
if(Array.isArray(arr[i])){
fn(arr[i])
}else{
newArr.push(arr[i])
}
}
}
fn(arr)
console.log(newArr)
正则表达式
var arr = [1,[2,[3,[4,5]]],6]
function flatten(arr) {
let str = JSON.stringify(arr);
str = str.replace(/(\[|\])/g, '');
str = '[' + str + ']';
return JSON.parse(str);
};
console.log(flatten(arr))
字符串方法
var arr = [1,[2,[3,[4,5]]],6]
arr = arr.toString().split(',').map(item=>+item)
console.log(arr)
reduce
var arr = [1,[2,[3,[4,5]]],6]
const newArr = (arr)=>{
return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur)?newArr(cur):cur)
},[])
}
console.log(newArr(arr))
![在这里插入图片描述](https://img-blog.csdnimg.cn/9020afebf46147f089af7e1eab548a63.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAendq44CB,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)