-1

我需要使用 JavaScript 合并多个数组值,但根据我的代码它不起作用。我在下面解释我的代码。

let result = [];

let arr1 = [1,2];
let arr2 = [3,4];
let arr3 = [5,6];

result.concat(arr1);
result.concat(arr2);
result.concat(arr3);


console.log(result);

在这里,我期待输出,[1,2,3,4,5,6]但根据我的代码,它的到来[]

4

2 回答 2

0

Concat 是一个纯运算符。这意味着它会生成一个新数组,而不是更改调用它的数组。

let result = [];

let arr1 = [1,2];
let arr2 = [3,4];
let arr3 = [5,6];

result.concat(arr1); // returns an array
result.concat(arr2); // returns an array
result.concat(arr3); // returns an array

如果要更改结果数组,可以这样做:

let result = [];

let arr1 = [1,2];
let arr2 = [3,4];
let arr3 = [5,6];

result = result.concat(arr1);
result = result.concat(arr2);
result = result.concat(arr3);

或者

let result = [];

let arr1 = [1,2];
let arr2 = [3,4];
let arr3 = [5,6];

result.push(...arr1);
result.push(...arr2);
result.push(...arr3);

push 是一个不纯的运算符,因此它正在更改“结果”数组。我在这里使用解构来传递所有 arr 元素以作为单独的参数推送。

于 2020-05-19T07:29:02.947 回答
-1

正如@VLAZ 建议的那样,您应该存储返回的数组:

var a = [1, 2, 3];
var b = [4, 5, 6];
var c = a.concat(b);

console.log(c); // c is [1, 2, 3, 4, 5, 6]
于 2020-05-19T07:29:14.377 回答