js基础知识——数组扁平化
一、数组的扁平化
- 将数组的 '多维数组' 转化成一个 '一维数组'
面试版(要手写以下代码)
//数组:
const arr = [1,2,3,[4,5,6,[7,8,9,[10,11,12]]]]
//面试版本
function flat(origin) {
// 该函数接受一个参数,也就是要实现扁平化的一个数组
// 1.创建一个空数组
const newArr = []
// 2.实现数组的扁平化
function fn (fnOrigin) {
fnOrigin.forEach((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);
工作中使用
console.log(arr.flat(Infinity)) //Infinity 正无穷