JS 二维数组变一维数组

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

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仍会保留。