2015-07-20 90 views
0

我有一个存储到childrenID的父节点子节点的唯一ID列表。Javascript分配数组到另一个数组的元素

var childrenIDs=["8b69b08e-d75e-6ef6-2cf4-275ff130cd74","42325602-9312-3565-b7dc-37383ca53c17", "2c91dcd6-7436-eff5-393e-cea8cbef338c"] 

我然后分配这些ID到另一阵列的所述第二元件

nodeArray[index].splice(0,1,childrenIDs); 

当nodeArray [索引] [0]被输入到控制台时,右输出(包含所有ID的)被打印。但是,如果键入childrenIDs.length = 0以清除第一个数组,则调用nodeArray [index] [0]会生成空输出。看起来好像nodeArr [index] [0]几乎充当指向childrenID的指针,其方式是当清除childrenIDs时,nodeArray [index] [0]也是如此。

我需要能够重用childrenIDs。清除数组的方式有什么问题吗?有没有办法让我在清除childrenID之后保存nodeArray [index] [0]中的数据?

+0

你可以尝试使用这种说法吗? nodeArray [指数] .splice(0,1,childrenIDs.slice(0)); – ashokd

+1

我刚试过。有效!非常感谢你。请作为任何其他人遇到此问题的答案。 – kevbud007

+0

添加为答案。 – ashokd

回答

2

你能尝试使用这种说法?

nodeArray[index].splice(0,1,childrenIDs.slice(0));

1

而不是将该数组分配为孩子,您应该指定它的副本。

childrenIDs.slice(0) 

应该是这样的,其中:

nodeArray[index].splice(0,1,childrenIDs.slice(0)); 
相关问题