美文网首页
JS数组降维的三个方法

JS数组降维的三个方法

作者: 7天苹果 | 来源:发表于2017-08-07 16:38 被阅读94次

1、利用双重循环遍历二维数组中的每个元素并放到新数组中。

function reduceDimension(arr) {
    var reduced = [];
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].length; j++) {
            reduced.push(arr[i][j]);
        }
    }
    return reduced;
}

2、concat()方法

如果concat方法的参数是一个元素,该元素会被直接插入到新数组中;如果参数是一个数组,该数组的各个元素将被插入到新数组中;将该特性应用到代码中:

function reduceDimension(arr) {
    var reduced = [];
    for (var i = 0; i < arr.length; i++){
        reduced = reduced.concat(arr[i]);
    }
    return reduced;
}

arr的每一个元素都是一个数组,作为concat方法的参数,数组中的每一个子元素又都会被独立插入进新数组。

利用concat方法,我们将双重循环简化为了单重循环。

3、利用apply和concat转换

即apply方法会调用一个函数,apply方法的第一个参数会作为被调用函数的this值,apply方法的第二个参数(一个数组,或类数组的对象)会作为被调用对象的arguments值,也就是说该数组的各个元素将会依次成为被调用函数的各个参数;将该特性应用到代码中:

function reduceDimension(arr) {
    return Array.prototype.concat.apply([], arr);
}

arr作为apply方法的第二个参数,本身是一个数组,数组中的每一个元素(还是数组,即二维数组的第二维)会被作为参数依次传入到concat中,效果等同于[].concat([1,2], [3,4], [5,6])利用apply方法,我们将单重循环优化为了一行代码。

相关文章

  • JS数组降维的三个方法

    1、利用双重循环遍历二维数组中的每个元素并放到新数组中。 2、concat()方法 如果concat方法的参数是一...

  • 笔记回顾

    json string 相互转换: 请用js计算1-10000中出现的0 的次数方法一: 方法二: 3.降维数组(...

  • js数组降维

    二维数组降一维 先看代码: 推荐直接使用apply()数组中的每一个元素(还是数组,二维数组的第二维)会被作为参数...

  • js数组降维

    数组降维 1). Array.prototype.concat.apply([],arr) 通过采用的是apply...

  • js 标准二维数组变一维数组的方法

    js 标准二维数组变一维数组的方法 reduce()使用方法 : https://...

  • C语言数组的升维与降维之说

    C语言数组的升维与降维之说 C语言数组的升维 C语言数组的降维

  • 2019-08-13

    js数组降维 reduce+concat reduce(callback, initialValue),第二个参数...

  • JS数组降维--Array.prototype.concat.a

    二维数组降为一维数组 循环降维 此方法思路简单,利用双重循环遍历二维数组中的每个元素并放到新数组中。 concat...

  • JS算法——数组降维

    一:二维数组 1、遍历降维 2、使用concat arr的每一个元素都是一个数组或参数,作为concat方法的参数...

  • JavaScript 将对象数组转为二维数组

    利用 JS 原生的数组 map 方法,可以将对象数组转换为二维数组 const objectArray = [ ...

网友评论

      本文标题:JS数组降维的三个方法

      本文链接:https://www.haomeiwen.com/subject/jjsalxtx.html