您的位置:

JavaScript数组合并的几种方法

在JavaScript编程中,经常需要将两个或多个数组合并为一个数组。本文将介绍JavaScript数组合并的几种方法。

一、concat()方法

1、concat()方法可以把多个数组合并成一个数组,该方法不会改变原数组,而是返回一个新数组,它将新的元素添加到了原始数组的尾部。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  let result = arr1.concat(arr2);
  console.log(result); // [1, 2, 3, 4, 5, 6]

2、该方法还可以接受多个参数,不限数量。

  let arr1 = [1, 2, 3];
  let result = arr1.concat(4, 5, 6);
  console.log(result); // [1, 2, 3, 4, 5, 6]

二、spread operator(扩展运算符)

1、ES6引入了spread operator,...可以将数组拆解成个体元素。使用扩展运算符可以轻松地将多个数组合并为一个数组。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  let result = [...arr1, ...arr2];
  console.log(result); // [1, 2, 3, 4, 5, 6]

2、可以在新数组前面添加其他元素。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  let result = ['start', ...arr1, ...arr2];
  console.log(result); // ['start', 1, 2, 3, 4, 5, 6]

三、push()方法

1、push()方法可以将其他数组添加到一个数组中,该方法会改变原数组。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  for (let i = 0; i < arr2.length; i++) {
    arr1.push(arr2[i]);
  }
  console.log(arr1); // [1, 2, 3, 4, 5, 6]

2、该方法也可以接受多个参数,不限数量。

  let arr1 = [1, 2, 3];
  arr1.push(4, 5, 6);
  console.log(arr1); // [1, 2, 3, 4, 5, 6]

四、unshift()和splice()方法

1、unshift()方法可以将其他数组添加到一个数组的开头,该方法会改变原数组。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  for (let i = arr2.length - 1; i >= 0; i--) {
    arr1.unshift(arr2[i]);
  }
  console.log(arr1); // [4, 5, 6, 1, 2, 3]

2、splice()方法也可以将其他数组添加到一个数组中,该方法会改变原数组。需要指定要插入的位置以及要插入的元素。

  let arr1 = [1, 2, 3];
  let arr2 = [4, 5, 6];
  arr1.splice(0, 0, ...arr2);
  console.log(arr1); // [4, 5, 6, 1, 2, 3]

五、reduce()方法

1、reduce()方法对数组中的所有元素执行一个指定操作,并将其结果累加到初始值上。

  let arr = [
    [0, 1],
    [2, 3],
    [4, 5]
  ];
  let result = arr.reduce((a, b) => {
    return a.concat(b);
  }, []);
  console.log(result); // [0, 1, 2, 3, 4, 5]

2、该方法的第二个参数是初始值,如果省略该参数,则默认使用第一个元素作为初始值。

  let arr = [1, 2, 3];
  let result = arr.reduce((a, b) => {
    return a + b;
  });
  console.log(result); // 6

六、总结

JavaScript数组合并的几种方法已经介绍完毕,合理选择合并方法可以提高代码效率、减少代码量、提高代码可读性。concat()方法和spread operator是最常用的方法,也是最好记忆的方法。如果想要改变原数组,可使用push()和unshift()方法,如果想要在任意位置插入元素,使用splice()方法即可。最后,reduce()方法也是不错的选择。