数组扁平化
在业务场景中,我们通常会遇到后台有时候返回多级的数组结构,比如 [1,3,4,5,[7,8,[10,11,12,13]]多层级数组结构,那么我们通常是要做一层数组处理,数据扁平化,说一下我的处理方式,因为本人是前端小白,所以写的不好的话,希望你们多多提供意见。谢谢啦~
递归处理
function flattenArray(arr){
// 对arr参数类型判断
if(!Array.isArray(arr)) return new TypeError("类型错误")
if(!arr.length) return [];
const res = [];
arr.forEach(item=>{
if(Array.isArray(item)){
res = res.concat(flattenArray(item))
}else{
res.push(item)
}
})
return res;
}
利用es6提供的reduce方法
const flattenArray = (arr) => {
return arr.reduce((acc, cur) => {
return acc.concat(Array.isArray(cur) ? flattenArray(cur) : cur)
}, [])
}
利用flat
const flat = (arr) =>{ return arr.flat(Infinity) }