当我只更新该数组的一个索引时,javascript数组两个索引值都得到更新
Posted
技术标签:
【中文标题】当我只更新该数组的一个索引时,javascript数组两个索引值都得到更新【英文标题】:javascript array both index value getting update when I update only one index of that array 【发布时间】:2018-07-01 22:43:07 【问题描述】:伙计们,我在制作动态多维数组时遇到了这个问题,但当我使用 javascript 更新数组的特定父索引时,我仍然不知道出了什么问题
.on('click', function()
array[dynamicIndex] = anotherArray;
);
所以问题是,当array[53][1,2,3]
是第一个索引分配值时,当我尝试分配新值时,新索引数组更新为
array[53][1,2,3,4,5,6]
array[54][1,2,3,4,5,6]
希望你有这个问题,如果没有,你可以访问这个link。
【问题讨论】:
数组是通过引用传递的,您是否检查过您没有将相同的数组 ref 分配给父数组中的不同元素? 如果您每次都使用相同的anotherArray
,那么您将在所有元素中放置对同一个数组的引用。
不,我没有分配相同的数组,因为我只想分配不同索引中的数组。您可以访问链接以供参考。 @FrontTheMachine
我没有得到请解释@Barmar
【参考方案1】:
在您的示例中,当您使用:
lightArr[parseInt(thatText)] = minArray;
您正在通过引用分配一个数组。这样,您对minArray
所做的任何更改都将反映到lightArr[parseInt(thatText)]
值。
您可以使用this 的方法来解决您的问题:
lightArr[parseInt(thatText)] = minArray.slice();
【讨论】:
lightArr
、thatText
和 minArray
是从哪里来的?尽管解释是正确的,但您似乎从另一个问题中获得了代码。
@Barmar 他们来自他提供的 jsfiddle 链接。
非常感谢@omaxel,这是一个美丽而准确的答案。以上是关于当我只更新该数组的一个索引时,javascript数组两个索引值都得到更新的主要内容,如果未能解决你的问题,请参考以下文章