数组扁平化是指将多维数组降维为一维数组
把一个二维数组变为一维数组的方法有
方式一:将es6的flat方法
const arr = [1,[2,3,4]]
方法一:数组自带的扁平化方法,flat的参数代表的是需要展开几层,如果是infinity的话就是不管嵌套几层全部都展开。
console.log(arr.flat(infinity)
方法二:使用正则
const arr = [1,[2,[3,[4,5]]],6]
const res = JSON.stringify(arr).replace(/\[|\]/g,'')
const res2 = JSON.parse('[' + res + ']')
console.log(res2)
首先是使用JSON.stringify把arr转为字符串接着使用正则把字符串里面的 [ 和 ]去掉
然后再拼接数组括号转为数组对象
方法三:使用reduce
const newArr = (arr)=>{
return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur) ? newArr(cur) : cur)
},[])
}
console.log(newArr(arr),"reduce方法")