我想将一个数组的元素添加到另一个数组中,所以我尝试了这样做:

[1,2] + [3,4]

它的答复是:

"1,23,4"

这是怎么回事?


当前回答

+连接字符串,因此它将数组转换为字符串。

[1,2] + [3,4]
'1,2' + '3,4'
1,23,4

要组合数组,使用concat。

[1,2].concat([3,4])
[1,2,3,4]

其他回答

看起来JavaScript正在将数组转换为字符串并将它们连接在一起。如果要将元组添加到一起,则必须使用循环或映射函数。

这完全是你让它做的。

你加在一起的是数组引用(JS将其转换为字符串),而不是看起来的数字。这有点像字符串相加:"hello " + "world" = "hello world"

如果你可以在JavaScript中重载操作符,那就太好了,但你不能: 我可以在Javascript定义自定义操作符重载吗? 你只能破解“==”操作符,它在比较之前转换为字符串: http://blogger.xs4all.nl/peterned/archive/2009/04/01/462517.aspx

+连接字符串,因此它将数组转换为字符串。

[1,2] + [3,4]
'1,2' + '3,4'
1,23,4

要组合数组,使用concat。

[1,2].concat([3,4])
[1,2,3,4]

这是因为,+运算符假设操作数是字符串,如果它们不是数字。因此,如果它不是一个数字,它首先将它们转换为字符串和连接,以给出最终结果。此外,它不支持数组。