Java在while循环中更改数组中的值

问题描述 投票:0回答:1

说我在数组中有数组:

time = 0
arr = [[1,2,3], [4,5,6], [7,8,9]]

而且我尝试在每个while循环中记录arr

while (time<3){
  currentarr = JSON.parse(JSON.stringify(arr))

  for(i=0;i<currentarr.length;i++){
      for(j=0; j<currentarr[i].length; j++){

          if(currentarr[i][j]>2){
             arr[i][j]++
          }

      }
  }
  console.log(arr)
  time++
}

我的问题是,每个while循环都给了我相同的arr(三个循环后的最终结果):

[[1, 2, 6],[7, 8, 9],[10, 11, 12]]

而不是每次:

[[1, 2, 4],[5, 6, 7],[8, 9, 10]]  
[[1, 2, 5],[6, 7, 8],[9, 10, 11]] 
[[1, 2, 6],[7, 8, 9],[10, 11, 12]]

我刚刚开始学习Javascript,但无法弄清楚哪一部分出错了……预先感谢!

javascript loops while-loop
1个回答
0
投票

1st-使用;很重要。即使代码在您现在正在执行的环境中运行,也有很多引擎对此不满意。

2nd-您的while循环不会更改其内部的任何迭代。如果您注意的话,您的time变量将不会被访问。它仅在while loop和您的time++添加条件下使用。它仅用作while loop的计数器,但未在for loops内部的任何地方用作数组的索引。

因此,您基本上每次都在while loop内部执行整个代码3次,完全相同。

© www.soinside.com 2019 - 2024. All rights reserved.