更改数组的值更改原始数组JavaScript

时间:2012-01-26 20:17:34

标签: javascript arrays

以下代码会将ID为0的两个元素设置为-,即使我只希望将其中一个设置为-1。我只是创建了对labelArray的引用,还是其他什么?

labelArray.sort(compare);
valueArray = labelArray;
valueArray[0] = '-1';
labelArray[0] = '-';

感谢所有帮助。

3 个答案:

答案 0 :(得分:9)

是。 valueArraylabelArray都引用相同的基础数组。要制作副本,请使用slice()

valueArray = labelArray.slice(0);

注意:Slice()仅复制1级深度,适用于原始数组。如果数组包含复杂对象,请使用类似jQuery的clone(),@ @Jonathan。

答案 1 :(得分:2)

  

我只是创建了对labelArray [...]的引用吗?

是的,确切地说。 valueArraylabelArray仍然标识相同的对象,但尚未复制。

答案 2 :(得分:1)

valueArray只是对labelArray的引用。

您要做的是克隆数组。您可以使用jQuery.clone()或类似的克隆函数来执行此操作。