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" ]
語法
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
參數
-
valueN
- 將數組和/或值連接成新數組。詳情請參閱下文描述。
返回值
新的 Array
實例。
描述
concat
方法創建一個新的數組,它由被調用的對象中的元素組成,每個參數的順序依次是該參數的元素(如果參數是數組)或參數本身(如果參數不是數組)。它不會遞歸到嵌套數組參數中。
concat
方法不會改變this
或任何作為參數提供的數組,而是返回一個淺拷貝,它包含與原始數組相結合的相同元素的副本。 原始數組的元素將復制到新數組中,如下所示:
- 對象引用(而不是實際對象):
concat
將對象引用復制到新數組中。 原始數組和新數組都引用相同的對象。 也就是說,如果引用的對象被修改,則更改對於新數組和原始數組都是可見的。 這包括也是數組的數組參數的元素。
注意:數組/值在連接時保持不變。此外,對於新數組的任何操作(僅當元素不是對象引用時)都不會對原始數組產生影響,反之亦然。
示例
以下代碼將兩個數組合並為一個新數組:
var alpha = ['a', 'b', 'c']; var numeric = [1, 2, 3]; alpha.concat(numeric); // result in ['a', 'b', 'c', 1, 2, 3]
連接三個數組
以下代碼將三個數組合並為一個新數組:
var num1 = [1, 2, 3], num2 = [4, 5, 6], num3 = [7, 8, 9]; var nums = num1.concat(num2, num3); console.log(nums); // results in [1, 2, 3, 4, 5, 6, 7, 8, 9]
將值連接到數組
以下代碼將三個值連接到數組:
var alpha = ['a', 'b', 'c']; var alphaNumeric = alpha.concat(1, [2, 3]); console.log(alphaNumeric); // results in ['a', 'b', 'c', 1, 2, 3]
合並嵌套數組
以下代碼合並數組並保留引用:
var num1 = [[1]]; var num2 = [2, [3]]; var nums = num1.concat(num2); console.log(nums); // results in [[1], 2, [3]] // modify the first element of num1 num1[0].push(4); console.log(nums); // results in [[1, 4], 2, [3]]