我想将一个数组的元素添加到另一个数组中,所以我尝试了这样做:
[1,2] + [3,4]
它的答复是:
"1,23,4"
这是怎么回事?
我想将一个数组的元素添加到另一个数组中,所以我尝试了这样做:
[1,2] + [3,4]
它的答复是:
"1,23,4"
这是怎么回事?
当前回答
[1,2]+[3,4]在JavaScript中等同于求值:
new Array( [1,2] ).toString() + new Array( [3,4] ).toString();
所以为了解决你的问题,最好的方法是在原地添加两个数组,或者不创建一个新数组:
var a=[1,2];
var b=[3,4];
a.push.apply(a, b);
其他回答
它像添加字符串一样添加两个数组。
第一个数组的字符串表示形式是“1,2”,第二个数组是“3,4”。因此,当找到+号时,它不能对数组求和,然后将它们作为字符串连接起来。
+连接字符串,因此它将数组转换为字符串。
[1,2] + [3,4]
'1,2' + '3,4'
1,23,4
要组合数组,使用concat。
[1,2].concat([3,4])
[1,2,3,4]
这完全是你让它做的。
你加在一起的是数组引用(JS将其转换为字符串),而不是看起来的数字。这有点像字符串相加:"hello " + "world" = "hello world"
如果你可以在JavaScript中重载操作符,那就太好了,但你不能: 我可以在Javascript定义自定义操作符重载吗? 你只能破解“==”操作符,它在比较之前转换为字符串: http://blogger.xs4all.nl/peterned/archive/2009/04/01/462517.aspx
[1,2]+[3,4]在JavaScript中等同于求值:
new Array( [1,2] ).toString() + new Array( [3,4] ).toString();
所以为了解决你的问题,最好的方法是在原地添加两个数组,或者不创建一个新数组:
var a=[1,2];
var b=[3,4];
a.push.apply(a, b);