在日常开发中,经常会遇到数组扁平化的操作,今天就来看看几种数组扁平化的方法,看看你更喜欢哪一种
第一种:递归实现
function name(arr) {
let res = []
for(let i = 0; i < arr.length; i++){
if (Array.isArray(arr[i])) {
res = res.concat(name(arr[i]));
}else{
res.push(arr[i])
}
}
return res
}
第二种:扩展运算符
function name2(arr) {
while(arr.some(item=>Array.isArray(item)) ) {
arr = [].concat(...arr)
}
return arr
}
第三种:split和toString共同处理
function name3(arr) {
return arr.toString().split(",").map(item=>{
return Number(item)
})
}
第四种:es6的flat方法
function name4(arr) {
return arr.flat(Infinity)
}
第五种:json和正则
function name5(arr) {
let str = JSON.stringify(arr)
str = str.replace(/(\[|\])/g,"")
str = "[" + str + "]"
return JSON.parse(str)
}