连接数组

两个阵列

var array1 = [1, 2];
var array2 = [3, 4, 5];

Version >= 3

var array3 = array1.concat(array2);  // returns a new array

Version >= 6

var array3 = [...array1, ...array2]

结果在一个新的 Array

[1, 2, 3, 4, 5]

多个阵列

var array1 = ["a", "b"],
    array2 = ["c", "d"],
    array3 = ["e", "f"],
    array4 = ["g", "h"];

Version >= 3

array.concat() 提供更多数组参数

var arrConc = array1.concat(array2, array3, array4);

Version >= 6

[] 提供更多参数

var arrConc = [...array1, ...array2, ...array3, ...array4]

结果在一个新的 Array

["a", "b", "c", "d", "e", "f", "g", "h"]

无需复制第一个数组

var longArray = [1, 2, 3, 4, 5, 6, 7, 8],
    shortArray = [9, 10];

Version >= 3

提供 shortArray 的元素作为推动使用 Function.prototype.apply 的参数

longArray.push.apply(longArray, shortArray);

Version >= 6

使用 spread 运算符将 shortArray 的元素作为单独的参数传递给 push

longArray.push(...shortArray)

longArray 的价值现在是:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

请注意,如果第二个数组太长(> 100,000 个条目),则可能会出现堆栈溢出错误(因为 apply 的工作原理)。为安全起见,你可以改为:

shortArray.forEach(function (elem) {
    longArray.push(elem);
});

数组和非数组值

var array = ["a", "b"];

Version >= 3

var arrConc = array.concat("c", "d");

Version >= 6

var arrConc = [...array, "c", "d"]

结果在一个新的 Array

["a", "b", "c", "d"]

你还可以将数组与非数组混合使用

var arr1 = ["a","b"];
var arr2 = ["e", "f"];

var arrConc = arr1.concat("c", "d", arr2);

结果在一个新的 Array

["a", "b", "c", "d", "e", "f"]