首页 > 代码库 > js中多维数组转一维
js中多维数组转一维
法一:使用数组map()方法,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr = [1,[2,[[3,4],5],6]]; function unid(arr){ var arr1 = (arr + ‘‘).split(‘,‘);//将数组转字符串后再以逗号分隔转为数组 var arr2 = arr1.map(function(x){ return Number(x); }); return arr2; } console.log(unid(arra));
法二:使用apply结合concat,缺点是只能将二维转一维,多维数组则不对了。
const arr = [1,[2,3],[4,5]];
console.log([].concat.apply([],arr));
法三:将数组转为字符串再转为数组,缺点是数组中每项成字符串了
var arr = [1,[2,[[3,4],5],6]]; var arr2 = arr.join(‘,‘).split(‘,‘); console.log(arr2);//["1", "2", "3", "4", "5", "6"]
法四:递归
var arr = [1,[2,[[3,4],5],6]]; var newArr = []; function fun(arr){ for(var i=0;i<arr.length;i++){ if(Array.isArray(arr[i])){ fun(arr[i]); }else{ newArr.push(arr[i]); } } } fun(arr); console.log(newArr);//[1, 2, 3, 4, 5, 6]
法五:reduce+递归
use strict‘;
var arr = [1,[2,[[3,4],5],6]];
const flatten = arr => arr.reduce(
(acc,val) => acc.concat(Array.isArray(val)? flatten(val):val),[]
)
console.log(flatten(arr));//[1, 2, 3, 4, 5, 6]
js中多维数组转一维
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。