js数组拍平(数组扁平化)的六种⽅式
1.数组拍平也称数组扁平化,就是将数组⾥⾯的数组打开,最后合并为⼀个数组
2.实现
var arr = [1,2,[3,4,5,[6,7,8],9],10,[11,12]];
a:递归实现
function fn(arr){
let arr1 = []
arr.forEach((val)=>{
if(val instanceof Array){
arr1 = at(fn(val))
}else{
arr1.push(val)
}
})
return arr1
}
b:reduce实现
function fn(arr){
duce((prev,cur)=>{
at(Array.isArray(cur)?fn(cur):cur)
},[])
}
c:flat
参数为层数(默认⼀层)
arr.flat(Infinity)
d:扩展运算符
function fn(arr){
let arr1 = [];
let bStop = true;
arr.forEach((val)=>{
if(Array.isArray(val)){
arr1.push(...val);
bStop = false
}else{
arr1.push(val)
}
})
if(bStop){
return arr1;
}
return fn(arr1)
}
e:toString
let arr1 = String().split(',').map((val)=>{
return parseInt(val)
js合并两个数组})
console.log(arr1)
f:apply
function flatten(arr){
while(arr.some(item => Array.isArray(item))){
arr = [].concat.apply([],arr);
}
return arr;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论