📜  JavaScript数组concat()

📅  最后修改于: 2020-09-27 05:36:53             🧑  作者: Mango

JavaScript Array 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 ] ]

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


    推荐读物:

    • JavaScript Array.pop()
    • JavaScript Array.push()