将子数组添加到包含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,他只是问原因,他没有要求另一个解决方案。