vue如何将二维数组转化为一维数组
短信预约 -IT技能 免费直播动态提醒
将二维数组转化为一维数组
需求
数组嵌套数据,导致循环不方便,想着将二维数组合并成一维数据,方便数据的操作
具体实现
利用reduce方法
reduce:不改变原数组,返回一个新的数组。就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0], array[1] ;
let flat=[[1,2,3],[4,5,6],[6,7,8]].reduce( (prev,next)=> {
return prev.concat(next);//循环将数组进行拼接
});
console.log(flat);
将多维数组转一维数组6种方法
ES6 flat方法
var arr=[1,[[[2,3],4]],5];
arr.flat(Infinity)//[1, 2, 3, 4, 5]
递归
var arr=[1,[[[2,3],4]],5];
var newArr=[];
function Arr(arr){
arr.map(item=>{
if(Array.isArray(item)){
Arr(item)
}else{
newArr.push(item)
}
})
return newArr
}
console.log(Arr(arr));//[ 1, 2, 3, 4, 5 ]
reduce +concat + 递归
var arr=[[[[2,3],4]],5];
function concatArr(arr){
var newArr=arr.reduce((pre,next)=>{
return pre.concat(Array.isArray(next)?concatArr(next):next)
},[])
return newArr;
}
console.log(concatArr(arr));//[ 2, 3, 4, 5 ]
join+split
var arr=[[1,2],3,[4,[5]]];
var arr1=arr.join().split(',');
console.log(arr1);//["1", "2", "3", "4", "5"]
toString+split
var arr=[[1,2],3,[4,[5]]];
var arr1=arr.toString().split(',');
console.log(arr1);//["1", "2", "3", "4", "5"]
eval
var arr=[[1,2],3,[4,[5]]];
var arr1=eval('[' + arr + ']');
console.log(arr1);//[ 1, 2, 3, 4, 5 ]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341