将多维数组平铺成一维数组,例如将[1,2,[3,4,[5,6,7]]]处理成[1,2,3,4,5,6,7],下面提供三种方式参考。
let arr1=[]
const tileArr = (arr) => {
for(let i=0;i<arr.length;i++){
if (Array.isArray(arr[i])) // 判断元素是否是数组
return tileArr(arr[i])
arr1.push(arr[i])
}
return arr1
}
tileArr([1,2,[3,4,[5,6,7]]]) // [1,2,3,4,5,6,7]
const tileArr = (arr) =>{
return arr.reduce((acc,cur) =>
acc.concat(Array.isArray(cur)?tileArr(cur):cur),[])
}
tileArr([1,2,[3,4,[5,6,7]]]) // [1,2,3,4,5,6,7]
-
字符串处理
- 使用String()将多维数组处理字符串的时候可以发现,无论有多少层,都会处理成普通字符串,那么接下来再将字符串分割成数组就行了,这里需要注意元素的类型,number型的话最后要再转换一下。
const tileArr = (arr) => {
let arr1=String(arr).split(",")
return arr1.map(function(item){ // 将String转为Number
return parseInt(item)
})
}
tileArr([1,2,[3,4,[5,6,7]]]) // [1,2,3,4,5,6,7]
版权声明:本文为qq_40731976原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。