連線陣列
兩個陣列
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"]