【发布时间】:2014-07-14 06:00:25
【问题描述】:
$ node
> A = [0, 1, 23]
[ 0, 1, 23 ]
> B = A
[ 0, 1, 23 ]
> A.splice(0, 3)
[ 0, 1, 23 ]
> B
[]
> A
[]
> A = A.concat([1, 2])
[ 1, 2 ]
> B
[]
这是正确的。但是,有没有可能在调用concat之后,B数组等于A?
我知道有循环解决方案,但是还有什么其他替代方法可以在多个相等的数组中添加多个元素?
顺便说一句,我不想直接修改B (A = B = A.concat(...))。
【问题讨论】:
-
你为什么需要这样的东西?
-
@thefourtheye
1.js导出包含模块中使用的数组的对象。2.js想要修改该数组,因此1.js将使用2.js数据。这是我的情况。 -
如果
A和B引用同一个数组,那么A.push(element)也会出现在B中。 -
@Paul 没错。但我想插入多个元素。
A = A.contact(...)不起作用,因为引用将被更改。A.push(...);A.push(...);A.push(...)...也会更改B,但我猜代码不会是最好的。 -
@ionica 看到本杰明的回答。对于添加多个元素,Function.apply 是与Array.push 一起使用的好帮手
标签: javascript arrays node.js