数组扁平化
将深层次数组变为一层数组,两种方法的思路其实感觉区别不大,期待后面有新思路
const array = [
[[10,11]],
1,
[2, 3, 4],
[[5, 6]],
[[[7, 8, 9]]]
]
/**
* 迭代 + concat()
* @returns Array
*/
Array.prototype.myFlat = function () {
let result = []
this.forEach(item => {
if (Array.isArray(item)) {
result = result.concat(item.myFlat())
}
else{
result.push(item)
}
})
return result
}
const array2 = array.myFlat()
console.log(array2)
/**
* 迭代 + reduce + concat()
* @returns Array
*/
Array.prototype.myFlat2 = function(){
return this.reduce((total,item)=>{
if(Array.isArray(item)){
total = total.concat(item.myFlat2())
}
else{
total.push(item)
}
return total
},[])
}
const array3 = array.myFlat2()
console.log(array3)
浙公网安备 33010602011771号