数据的扁平化
- 就是将一个"多维数组"转化为一个"一维数组"
const arr = [1, 2, 3, 4, [5, 6, 7, 8, [9, 10, 11, 12]]]
console.log(arr)
// 1. 面试版
// 该函数接收一个参数,也就是你要实现扁平化的一个数组
function flat(origin) {
// 1. 创建一个空数组,用来接收扁平化以后的元素内容
const newArr = []
// 2.实现数组的扁平化
function fn(fnOrigin) {
fnOrigin.forEach((item) => {
// console.log(item)
if(Object.prototype.toString.call(item) === '[object Array]'){
// 说明当前item是一个数组,所以此时需要递归调用fn函数
fn(item)
} else {
// 如果当前分支执行,说明item一定不是一个数组
newArr.push(item)
}
})
}
fn(origin)
// 3.把处理好的数组(newArr)返回出去
return newArr
}
const flatArr = flat(arr)
console.log(flatArr)
// 2.工作版(一行搞定) Infinity
console.log(arr)
console.log(arr.flat(1))
console.log(arr.flat(2))
console.log(arr.flat(Infinity))