function flatten(arr) {
let res=[]
for(let i in arr){
if(!Array.isArray(arr[i])) res.push(arr[i])
else{
res=res.concat(flatten(arr[i]))
}
}
return res
}
function flatten2(arr){
return arr.reduce((pre,cur)=>{
if(Array.isArray(cur)) return pre.concat(flatten2(cur))
else return pre.concat(cur)
},[])
}
function flatten3(arr){
while(arr.some(item=>Array.isArray(item))){
arr=[].concat(...arr)
}
return arr
}
function flatten4(arr){
return arr.toString().split(',').map(item=>+item)
}
/**es6 */
function flatten5(arr){
return arr.flat(Infinity)
}
js多维数组展开为一维数组
最新推荐文章于 2025-07-16 11:08:40 发布
本文对比了五个JavaScript函数,分别实现数组扁平化:flatten、flatten2利用reduce,flatten3采用while循环检测数组嵌套,flatten4通过字符串转换,以及flatten5使用ES6的flat方法。展示了不同策略在处理复杂数组结构时的效率和适用场景。
低功耗蓝牙项目,需要一块懂省电的板
思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发
低功耗蓝牙项目,需要一块懂省电的板
思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发
4万+

被折叠的 条评论
为什么被折叠?



