全栈工程师程序员

数组降维

2017-07-24  本文已影响40人  Dl_毛良伟

如何将二维数组降到一维数组?

let dimensionalityReduction = [];
for (let i in arrey){
  for(let j in arrey[i]){
    dimensionalityReduction.push(arrey[i][j]);
  }
}

dimensionalityReduction即为降维后的一维数组.

1.concat的作用: 如果concat方法的参数是一个元素,该元素会被直接插入到新数组中;如果参数是一个数组,该数组的各个元素将被插入到新数组中.
let dimensionalityReduction = [];
for (let i in arrey){
  dimensionalityReduction.concat(arrey[i]);
}

arrey的每一个元素都是一个数组,作为concat方法的参数,数组中的每一个子元素又都会被独立插入进新数组。
利用concat方法,我们将双重循环简化为了单重循环。

2.concat的第二个作用: concat()方法用于合并两个或更多个数组。此方法不会更改现有的数组,而是返回一个新的数组。
var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];

var arr3 = arr1.concat(arr2);

// arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]

apply是所有函数都有的方法.它的签名如下:
func.apply(thisValue, [arg1, arg2, ...])
如果不考虑thisValue的影响,上面的调用等同于:
func(arg1, arg2, ...)
也就是说,apply允许我们将一个数组"解开"成为一个个的参数再传递给调用函数.

let dimensionalityReduction = [];
dimensionalityReduction =  Array.prototype.concat.apply([], arrey);
上一篇下一篇

猜你喜欢

热点阅读