JS 二维数组变一维数组

发布日期:2020-06-05 阅读量:1121

1. apply方法

var arr = [[1, 2], [3, 4], [5, 6]];
var newArr = Array.prototype.concat.apply([], arr);

2. reduce方法

var arr = [[1, 2], [3, 4], [5, 6]];
var newArr = arr.reduce(function(a, b) {
return a.concat(b)
});

3. 遍历

var arr = [[1, 2], [3, 4], [5, 6]];
function flatten(arr) {
return [].concat( ...arr.map(item => Array.isArray(item) ? flatten(item) : item)
}
var newArr = flatten(arr)

4. ES6 flat

var arr = [[1, 2], [3, 4], [5, 6]];
var newArr = arr.flat();

5. 补充 flat

   flat为ES6语法,所以会有兼容性问题,arr.flat(n) 其中n代表降维深度;

   flat()方法会移除数组中的空项。但undefined、null仍会保留。