如何同时遍历多维数组中的每个数组

时间:2017-07-23 19:06:28

标签: javascript arrays algorithm multidimensional-array

假设我有一个多维数组,按照以下代码:

var theArray = [
  [1, 2, 3],
  [3, 2, 1],
  [1, 2, 3],
  [1, 2, 1]
]

我需要执行迭代,我根据某些条件改变数字:

  • 如果数字1低于3;它转变为“foo”。
  • 如果数字3的上方有1;它转变为“酒吧”。
  • 如果垂直连续序列为2对1& 3或3&发生1,对没有发生突变。

我的问题是,当我使用forEach()迭代它时,我最终在我到达下一个数组之前改变当前数组中的数字,因此我使条件无效,因为一旦迭代进入下一个数组;检查失败,因为例如将有“foo”或“bar”而不是1或2.

所以这样的事情不会起作用:

someArray.forEach((array, index) => {
  array.forEach((digit, numIndex) => {
    if(someArray[index + 1][numIndex] == 3 && digit == 1) {
      array[numIndex] = "foo"
    } else if(someArray[index - 1][numIndex] == 1 && digit == 3) {
      array[numIndex] = "bar"
    }
  })
})

因此;我认为如果所有阵列同时存在这些条件,就必须有“实时检查”的方法。特别是考虑到需要通过垂直对检查的最后收缩。

预期结果:

var theArray = [
  ["foo", 2, 3],
  ["bar" , 2, 1],
  [1, 2, 3]
  [1, 2, 1]
]

这是如何实现的?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先检查数组的元素是否存在于array = ["a", "b", "f", "c", "d", "e"] 索引处,然后使用+/- <检查该索引处的所有元素是否仅包含13 / p>

&#13;
&#13;
.every()
&#13;
&#13;
&#13;