为了账号安全,请及时绑定邮箱和手机立即绑定

将 subArray 添加到 Javascript 中包含 subArrays 的数组

将 subArray 添加到 Javascript 中包含 subArrays 的数组

牛魔王的故事 2022-10-21 10:23:57
我有数组:[[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]为什么?谢谢
查看完整描述

4 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

基本上,因为元素类型arr1是子数组,但元素类型addArr只是整数。所以你只需要addArr像下面这样将元素包装在一个数组上就可以了。


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

const addArr = [[3,3,3]];


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

console.log(result);


查看完整回答
反对 回复 2022-10-21
?
郎朗坤

TA贡献1921条经验 获得超9个赞

这就是Array.prototype.concat()的工作方式:

const a = [1, []];
const b = [3, 4];
const c = a.concat(b);
// [1,  [],  3,  4]

与您的代码没有区别。


Concat嵌套数组


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

const addArr = [[3,3,3]];                // Or also, use [3, 3, 3]...

const result = arr1.concat(addArr);      // ...but than ([addArr]) here

console.log(result);


解构数组


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

const addArr = [[3,3,3]];           // Wrap into additional []

 

const result = [...arr1, ...addArr]; 

console.log(result)


查看完整回答
反对 回复 2022-10-21
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

发生原因:.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);


查看完整回答
反对 回复 2022-10-21
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

因为concat() 两个或多个数组合并在一起。

合并与添加或推入不同。

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

例子 :

const array1 = ['a', 'b', 'c'];

const array2 = ['d', 'e', 'f'];

const array3 = array1.concat(array2);


console.log(array3);

// expected output: Array ["a", "b", "c", "d", "e", "f"]

// Your guess is : Array ["a", "b", "c", ["d", "e", "f"] ]

您可以通过使用解决您的问题push()

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

const addArr = [3, 3, 3];


arr1.push(addArr)

console.log(arr1);


或者通过在数组中添加值(不推荐):


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

const addArr = [3, 3, 3];


const result = arr1.concat([addArr])

console.log(result);


或者也许是经典时尚:


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

const addArr = [3, 3, 3];


arr1[arr1.length] = addArr


console.log(arr1);


查看完整回答
反对 回复 2022-10-21
  • 4 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信