Array.prototype.concat()

concat() 方法用于合并两个或多个数组。 此方法不会更改现有数组,而是返回一个新数组。

使用 concat 方法组合两个数组

Concatenation 意思是将元素连接到尾部。

同理,JavaScript 为字符串和数组提供了concat(Array.prototype.concat())方法。

对数组来说,在一个数组上调用 concat 方法,然后提供另一个数组作为参数添加到第一个数组末尾。
它返回一个新数组,不会改变任何一个原始数组。

简单的例子:

1
[1, 2, 3].concat([4, 5, 6]); // [1, 2, 3, 4, 5, 6]

复杂的例子:

1
2
3
4
5
6
7
8
9
function nonMutatingConcat(original, attach) {

  return original.concat(attach)

}

const first = [1, 2, 3];
const second = [4, 5];
nonMutatingConcat(first, second); // [1, 2, 3, 4, 5]

使用 concat 而不是 push 将元素添加到数组的末尾

函数式编程就是创建和使用具有不变性的函数。

concat 方法,是一种在不改变原始数组的前提下,将数组组合成新数组的方法。

将 concat 方法与 push 方法做比较。

push 将元素添加到调用它的数组的末尾,这样会改变该数组。

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

concat 方法可以将新项目添加到数组末尾,而不产生副作用

1
2
3
4
5
6
7
8
9
function nonMutatingPush(original, newItem) {

  return original.concat(newItem);

}

const first = [1, 2, 3];
const second = [4, 5];
nonMutatingPush(first, second); // [1, 2, 3, 4, 5]