function flat(src, n, dest = []) {
if(n > 0) {
for(let item of src) {
if(Array.isArray(item)){
flat(item, n - 1, dest)
}else {
dest.push(item)
}
}
}else {
dest.push(src)
}
return dest
}
控制扁平层数
forEach循环 + concat
function flat(src, n, dest = []) {
n > 0 ? src.forEach(item => dest.concat(Array.isArray(item) ? flat(item, n - 1, dest) : dest.push(item))) : dest.push(src)
return dest
}
控制扁平层数
reduce + concat
function flat(src, n) {
return n > 0 ? src.reduce((pre,cur) => {
return pre.concat(Array.isArray(cur) ? flat(cur, n - 1) : cur)
}, []) : src
}
扁平化就是将嵌套的数组变成一维数组。
reduce方法
toString方法
迭代方法
控制扁平层数
for of循环
控制扁平层数
forEach循环 + concat
控制扁平层数
reduce + concat