JavaScript Array concat()

concat() 方法通过合并两个或多个值/数组来返回一个新数组

示例

let primeNumbers = [2, 3, 5, 7]
let evenNumbers = [2, 4, 6, 8]

// join two arrays let joinedArrays = primeNumbers.concat(evenNumbers);
console.log(joinedArrays); /* Output: [ 2, 3, 5, 7, 2, 4, 6, 8 ] */

concat() 语法

concat() 方法的语法是

arr.concat(value1, value2, ..., valueN)

这里,arr 是一个数组。


concat() 参数

concat() 方法接受任意数量的数组和/或值作为参数。


concat() 返回值

  • 返回合并了参数中所有数组/值后的新数组。

concat() 方法首先创建一个新数组,其中包含调用该方法的对象中的元素。然后它会依次添加参数或参数中的元素(对于数组)。


示例 1:使用 concat() 方法

var languages1 = ["JavaScript", "Python", "Java"];
var languages2 = ["C", "C++"];

// concatenating two arrays
var new_arr = languages1.concat(languages2);
console.log(new_arr); // [ 'JavaScript', 'Python', 'Java', 'C', 'C++' ] // concatenating a value and array
var new_arr1 = languages2.concat("Lua", languages1);
console.log(new_arr1); // [ 'C', 'C++', 'Lua', 'JavaScript', 'Python', 'Java' ]

输出

[ 'JavaScript', 'Python', 'Java', 'C', 'C++' ]
[ 'C', 'C++', 'Lua', 'JavaScript', 'Python', 'Java' ]

示例 2:连接嵌套数组

concat() 方法以如下方式返回连接元素的浅拷贝:

  • 它将对象引用复制到新数组中。(**例如**:传递嵌套数组)因此,如果修改了引用的对象,更改在新数组中也是可见的。
  • 它将字符串和数字的值复制到新数组中。
var randomList = [1, 2, 3];
var randomNestedList = [
  [4, 5],
  [6, 7],
];

var combined = randomList.concat(randomNestedList);
console.log(combined); // [ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ] // changing the value 1 to 0 randomList[0] = 0; console.log(randomList); // [ 0, 2, 3 ] // changes not reflected in concatenated array console.log(combined); // [ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ] // modifying nested list (adding 6 to first element) randomNestedList[0].push(6); console.log(randomNestedList); // [ [ 4, 5, 6 ], [ 6, 7 ] ] // changes are reflected in concatenated array // since it is a reference to the object console.log(combined); // [ 1, 2, 3, [ 4, 5, 6 ], [ 6, 7 ] ]

输出

[ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ]
[ 0, 2, 3 ]
[ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ]
[ [ 1, 2, 3 ], [ 6, 7 ] ]
[ 1, 2, 3, [ 4, 5, 6 ], [ 6, 7 ] ]

这里,嵌套数组的引用被复制到连接的数组中。因此,当我们修改任何引用时,更改会在所有地方反映出来。


推荐阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战