【问题标题】:javascript array both index value getting update when I update only one index of that array当我只更新该数组的一个索引时,javascript数组两个索引值都得到更新
【发布时间】: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

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

在您的示例中,当您使用:

lightArr[parseInt(thatText)] = minArray;

您正在通过引用分配一个数组。这样,您对minArray 所做的任何更改都将反映到lightArr[parseInt(thatText)] 值。

您可以使用this 的方法来解决您的问题:

lightArr[parseInt(thatText)] = minArray.slice();

【讨论】:

  • lightArr、thatText 和 minArray 是从哪里来的?尽管解释是正确的,但您似乎从另一个问题中获得了代码。
  • @Barmar 他们来自他提供的 jsfiddle 链接。
  • 非常感谢@omaxel,这是一个美丽而准确的答案。
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多