所谓的数组扁平化就是将多维数组转成一维数组,例如:将多维数组 [[1, 2, 8, [6, 7]], 3, [3, 6, 9], 4]
转成 [1, 2, 8, 6, 7, 3, 3, 6, 9, 4]
的形式,以下为数组扁平化的几种方法
方法一:通过递归函数实现1
// 多维数组
var arr = [[1, 2, 8, [6, 7]], 3, [3, 6, 9], 4]
function getNewArr(arr) {
// 定义新数组用于存储所有元素
var newArr = []
// 遍历原数组中的每个元素
for (var i = 0; i < arr.length; i++) {
// 判断当前元素是否为数组
if (Array.isArray(arr[i])) {
// 若当前元素为数组时,调用函数本身继续判断,通过 concat 方法连接函数返回的数组
newArr = newArr.concat(getNewArr(arr[i]))
} else {
// 若不是数组直接将当前元素追加到新数组的末尾
newArr.push(arr[i])
}
}
// 循环结束将新数组返回
return newArr
}
console.log(arr