我想将一个数组的元素添加到另一个数组中,所以我尝试了这个:
[1,2] + [3,4]
它做出了回应:
"1,23,4"
发生了什么?
我想将一个数组的元素添加到另一个数组中,所以我尝试了这个:
[1,2] + [3,4]
它做出了回应:
"1,23,4"
发生了什么?
[...[1, 2], ...[3, 4]]
给出:
[1, 2, 3, 4]
它也适用于命名变量:
const a = [1, 2];
const b = [3, 4];
const array = [...a, ...b];
会得到相同的结果。
这里有一些答案解释了为什么会出现意外的不期望输出('1,23,4'
),还有一些解释了如何获得他们认为是期望的输出([1,2,3,4]
),即数组连接。然而,期望的输出的性质实际上有些模糊,因为原始问题只是简单地陈述了“我想将一个数组的元素添加到另一个数组中...”。那可能意味着数组连接,但也可能意味着元组加法(例如here和here),即将一个数组中元素的标量值与第二个数组中相应元素的标量值相加,例如将[1,2]
和[3,4]
组合成[4,6]
。
假设两个数组具有相同的元数/长度,这里有一个简单的解决方案:
const arr1 = [1, 2];
const arr2 = [3, 4];
const add = (a1, a2) => a1.map((e, i) => e + a2[i]);
console.log(add(arr1, arr2)); // ==> [4, 6]
只使用简单的“+”符号得到的另一个结果将是:
[1,2]+','+[3,4] === [1,2,3,4]
所以像这样的东西应该可以工作(但是!):
var a=[1,2];
var b=[3,4];
a=a+','+b; // [1,2,3,4]
...但它会将变量a从数组转换为字符串!记住这一点。
[5,6,7][1,2]
的结果是7
,因为它使用了第二个数组中的最后一个元素。O.o - vsync