深入了解array.concat函数

发布时间:2023-05-16

一、合并数组

使用 array.concat() 函数可以将两个数组合并成一个数组。这个函数不会改变原数组,而是返回一个新的数组。

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

当需要将多个数组合并时,可以连续使用多个 concat 函数进行合并。

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

除了使用 concat 函数进行合并外,也可以使用扩展运算符 (...) 进行合并。

const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = [5, 6];
const arr4 = [...arr1, ...arr2, ...arr3];
console.log(arr4); // [1, 2, 3, 4, 5, 6]

二、合并数组和值

除了可以将两个数组合并成一个数组外,还可以将一个数组和若干个值合并成一个新的数组。

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

在使用 concat 函数进行合并时,可以将数组和值混合使用。

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

三、合并多维数组

当数组中的元素也是数组时,可以使用 concat 多维数组。

const arr1 = [[1], [2]];
const arr2 = [[3], [4]];
const arr3 = arr1.concat(arr2);
console.log(arr3); // [[1], [2], [3], [4]]

注意,concat 函数不会递归合并多维数组,只会将第一层数组合并。如果需要递归合并多维数组,可以使用 lodash 等库进行操作。

四、可变参数函数

由于 concat 函数支持可变参数函数调用方式,因此可以使用 apply 或者扩展运算符对一个数组进行动态添加。

const arr1 = [1, 2, 3];
const arr2 = [4, 5];
arr1.push.apply(arr1, arr2);
// 等价于 arr1.push(4, 5);
console.log(arr1); // [1, 2, 3, 4, 5]

可以看到,concat 函数在可变参数函数中的应用非常广泛。

总结

本文详细介绍了 array.concat 函数,包括合并数组、合并数组和值、合并多维数组、可变参数函数等方面的用法。