<script>
let arr1 = [1,2,[3,4]]
console.log(arr1.flat()) // [1,2,3,4]
//实现方式1 //递归
Array.prototype.flat = function(){
var arr = [];
this.forEach((item,idx)=>{
if(Array.isArray(item)){
arr=arr.concat(item.flat());
}else{
arr.push(item)
}
})
return arr
}
//实现方式2
//连接数组返回字符串用,进行分割,然后map映射将数组的string转换为number
arr.prototype.flat = function(){ this.toString().split(',').map(item=>+item) }
//map 映射 例:
//var arr = [1,2,3] //var arr2=arr.map((item)=>{return item*2}) //console.log(arr2) [2,4,6] </script>
本文参考自掘金 Vincent Ko https://juejin.im/post/5b72f0caf265da282809f3b5(前端鄙视&面试 算法)