将子数组添加到包含Javascript子数组的数组中

将子数组添加到包含Javascript子数组的数组中,javascript,Javascript,我有一个数组:[[1,2,3],[1,2,2],[4,3]]。然后我想添加数组:[3,3,3]。结果应该是[[1,2,3],[1,2,2],[4,3],[3,3,3]] 我的代码: const arr1 = [[1,2,3], [1,2,2], [4,3]]; const addArr = [3,3,3]; const result = [].concat(arr1 , addArr ); console.log(result); 日志是:[[1,2,3],[1,2,2],[4,3],[3,

我有一个数组:
[[1,2,3],[1,2,2],[4,3]]
。然后我想添加数组:
[3,3,3]
。结果应该是
[[1,2,3],[1,2,2],[4,3],[3,3,3]]

我的代码:

const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [3,3,3];

const result = [].concat(arr1 , addArr );
console.log(result);
日志是:
[[1,2,3],[1,2,2],[4,3],[3,3,3]
为什么

感谢使用将元素附加到数组的末尾

const arr1=[[1,2,3],[1,2,2],[4,3];
const addArr=[3,3,3];
arr1.推送(addArr);
控制台日志(arr1)用于将元素附加到数组末尾

const arr1=[[1,2,3],[1,2,2],[4,3];
const addArr=[3,3,3];
arr1.推送(addArr);
控制台日志(arr1)这就是工作方式:

你的代码没有区别

海螺
const arr1=[[1,2,3],[1,2,2],[4,3];
常量addArr=[[3,3,3]];//或者也可以使用[3,3,3]。。。
const result=arr1.concat(addArr);/。。。但是这里比([addArr])
控制台日志(结果)这就是工作方式:

你的代码没有区别

海螺
const arr1=[[1,2,3],[1,2,2],[4,3];
常量addArr=[[3,3,3]];//或者也可以使用[3,3,3]。。。
const result=arr1.concat(addArr);/。。。但是这里比([addArr])

控制台日志(结果)
基本上,因为
arr1
的元素类型是子数组,而
addArr
的元素类型只是整数。因此,只需将
addArr
的元素包装到如下数组中即可

const arr1=[[1,2,3],[1,2,2],[4,3];
常量addArr=[[3,3,3]];
const result=[].concat(arr1,addArr);

控制台日志(结果)
基本上,因为
arr1
的元素类型是子数组,而
addArr
的元素类型只是整数。因此,只需将
addArr
的元素包装到如下数组中即可

const arr1=[[1,2,3],[1,2,2],[4,3];
常量addArr=[[3,3,3]];
const result=[].concat(arr1,addArr);
控制台日志(结果),因为将两个或多个数组合并在一起

合并与添加或推入不同

它不会将数组作为值添加到其他数组中,而是将值合并在一起

例如:

常量数组1=['a','b','c'];
常量数组2=['d','e','f'];
常数阵列3=阵列1.concat(阵列2);
控制台日志(array3);
//预期输出:数组[“a”、“b”、“c”、“d”、“e”、“f”]
//您的猜测是:数组[“a”、“b”、“c”、“d”、“e”、“f”]
因为将两个或多个数组合并在一起

合并与添加或推入不同

它不会将数组作为值添加到其他数组中,而是将值合并在一起

例如:

常量数组1=['a','b','c'];
常量数组2=['d','e','f'];
常数阵列3=阵列1.concat(阵列2);
控制台日志(array3);
//预期输出:数组[“a”、“b”、“c”、“d”、“e”、“f”]
//你的猜测是:数组[“a”、“b”、“c”、“d”、“e”、“f”]
为什么会发生这种情况: .concat将每个数组的内容添加到新数组中

arr1中的内容是[1,2,3],[1,2,2],[4,3]

addArr中的内容是3,3,3

这就是结果

如何做到:

const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [3,3,3];

const result = [...arr1, addArr];
console.log(result);
发生原因: .concat将每个数组的内容添加到新数组中

arr1中的内容是[1,2,3],[1,2,2],[4,3]

addArr中的内容是3,3,3

这就是结果

如何做到:

const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [3,3,3];

const result = [...arr1, addArr];
console.log(result);

不漂亮,但是
[].concat(arr1,[addArr])
有效also@charlietfl为什么不
arr1.concat([addArr])
!注意:如果使用
push(addArr)
,对
addArr
的任何更改都将更改arr1。因此,请确保使用
push(addArr.slice())
来推送副本,而不仅仅是一个引用。不漂亮,但是
[].concat(arr1,[addArr])
有效also@charlietfl为什么不
arr1.concat([addArr])
!注意:如果使用
push(addArr)
,对
addArr
的任何更改都将更改arr1。因此,请确保您使用
push(addArr.slice())
来推送副本,而不仅仅是引用。Concat已经返回了一个新数组,并且没有修改现有数组。@RokoC.Buljan,他只是问了他没有要求其他解决方案的原因。Concat已经返回了一个新数组,并且没有修改现有数组。@RokoC.Buljan,他只是问原因,他没有要求另一个解决方案。