更改数组的值更改原始数组的JavaScript
问题描述:
以下code导致从ID这两个元素 0
设置为 -
,即使我希望只有一个被设置为 1
。我只是创建与labelArray的引用,或者是其他什么东西?
The following code causes both elements from id 0
to be set to -
, even though I want only one to be set to -1
. Am I just creating a reference to the labelArray, or is something else?
labelArray.sort(compare);
valueArray = labelArray;
valueArray[0] = '-1';
labelArray[0] = '-';
所有帮助AP preciated。
All help is appreciated.
答
是。无论 valueArray
和 labelArray
引用相同的底层数组。:要进行复印,使用的片():
Yes. Both valueArray
and labelArray
reference the same underlying array. To make a copy, use slice():
valueArray = labelArray.slice(0);
请注意:切片()只复制1级深,这对于基本数组正常工作。如果数组包含复杂的对象,使用类似jQuery的的clone(),信用@乔纳森。
NOTE: Slice() only copies 1 level deep, which works fine for primitive arrays. If the array contains complex objects, use something like jQuery's clone(), credit @Jonathan.