函数设计
功能:
多维数组扁平化
参数
多维数组
返回值
扁平化后的数组
思路
1.函数内部需要初始化一个新的数组(newArr),作为扁平化后的数组容器
2.对于非数组类型的子元素,直接放入newArr
3.对于数组类型的子元素,则需要使用递归的方法去重新进入扁平化的函数,对该子元素内部的子元素重新进行判断与操作
函数实现
function flatArr(value){
let newArr = []
value.forEach((item,index)=>{
if(toString.call(item) === '[object Array]'){
newArr = newArr.concat(flatArr(item))
}else{
newArr.push(item)
}
})
return newArr
}
测试
<script>
function flatArr(value){
let newArr = []
value.forEach((item,index)=>{
if(toString.call(item) === '[object Array]'){
newArr = newArr.concat(flatArr(item))
}else{
newArr.push(item)
}
})
return newArr
}
let Arr = [1,2,3,[4,5,6,[7,8,9]]]
let newArrs = flatArr(Arr)
console.log(newArrs,'扁平后的数组')
</script>
结果如下