我有一个存储在childrenID中的父节点子节点的唯一ID列表。
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 [index] [0]输入控制台时,将打印右输出(包含所有ID)。但是,如果我键入childrenIDs.length = 0来清除第一个数组,则调用nodeArray [index] [0]会产生空输出。似乎nodeArr [index] [0]几乎充当了一个指向childrenID的指针,就像清除childrenIDs一样,nodeArray [index] [0]也是如此。
我需要能够重用childrenID。我清除数组的方式是否有问题,是否有办法在清除childID后保留nodeArray [index] [0]中的数据?
答案 0 :(得分:2)
您可以尝试使用此声明吗?
nodeArray[index].splice(0,1,childrenIDs.slice(0));
答案 1 :(得分:1)
不应将数组指定为子节点,而应指定它的副本。
childrenIDs.slice(0)
看起来像这样:
nodeArray[index].splice(0,1,childrenIDs.slice(0));