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

Ope*_*Rex 5 javascript arrays

以下代码导致来自id的两个元素都0被设置为-,即使我只想将一个元素设置为-1.我只是创建对labelArray的引用,还是其他什么?

labelArray.sort(compare);
valueArray = labelArray;
valueArray[0] = '-1';
labelArray[0] = '-';
Run Code Online (Sandbox Code Playgroud)

所有帮助表示赞赏.

pai*_*lee 10

是.二者valueArraylabelArray引用相同的底层数组.要制作副本,请使用slice():

valueArray = labelArray.slice(0);
Run Code Online (Sandbox Code Playgroud)

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

  • @ deth4uall是的,JS中的变量,对象属性和数组槽都是_reference_值,它们没有_contain_它们. (2认同)