繁体   English   中英

JavaScript 嵌套循环未按预期工作

[英]JavaScript nested loop not working as expected

我正在尝试使用嵌套循环更改多维数组(三层)的特定 position 中的值,但我似乎无法让它按需要工作。

正如您将在下面的代码中看到的,我的数组以三个 arrays 开头,这三个 arrays 中的每一个都有两个 arrays。 我要做的是更改每个“更深” arrays 的第二个值,但新值会有所不同,具体取决于中级 arrays 中哪个持有更深的数组。

数组是这样开始的:

[[['A','X'],['B','X']],
 [['C','X'],['D','X']],
 [['E','X'],['F','X']]]

我正在尝试更改“X”。 前两个 exe 位于 arrays 的同一数组中,因此它们将获得相同的 output - 依此类推。 这是期望的结果:

[[['A','Output 1'],['B','Output 1']],
 [['C','Output 2'],['D','Output 2']],
 [['E','Output 3'],['F','Output 3']]]

这是我到目前为止所拥有的:

 var myArray = [ [ ['A', 'X'], ['B', 'X'] ], [ ['C', 'X'], ['D', 'X'] ], [ ['E', 'X'], ['F', 'X'] ] ]; var firstOutput = 1; for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) { myArray[i][j][1] = 'Output ' + firstOutput; } firstOutput = firstOutput + 1; } console.log(myArray);

然而,我实际上得到的是这样的,而不是得到想要的结果:

[[['A','Output 3'],['B','Output 3']],
 [['C','Output 3'],['D','Output 3']],
 [['E','Output 3'],['F','Output 3']]]

因此,第一个数组不是 Output 1 ,第二个是 Output 2 ,第三个是 3 ,我每次都得到 Output 。

如果有人可以帮助我获得我正在寻找的结果,我将非常感激。

这是我为每个所做的:

  var arr = [
    [["A", "X"], ["B", "X"]],
    [["C", "X"], ["D", "X"]],
    [["E", "X"], ["F", "X"]]
  ];
  var count = 1
  var newArray = []
  arr.forEach(array => {
    var a = []
    array.forEach(arr => {
      arr[1] = "Output " + count
      a.push(arr)
    })
    count++
    newArray.push(a)
  })
  console.log(newArray)

尝试这个:

 var myArray = [ [ ['A', 'X'], ['B', 'X'] ], [ ['C', 'X'], ['D', 'X'] ], [ ['E', 'X'], ['F', 'X'] ] ]; let itemIndex = 1; var newArray = []; myArray.map((item) => { var arr = []; item.map((elem) => { elem[1] = 'Output ' + itemIndex; arr.push(elem); }); newArray.push(arr); itemIndex = itemIndex + 1; }); console.log(newArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM