假设我有一个多维数组,按照以下代码:
var theArray = [
[1, 2, 3],
[3, 2, 1],
[1, 2, 3],
[1, 2, 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]
]
这是如何实现的?
提前感谢您的帮助!
答案 0 :(得分:1)
首先检查数组的元素是否存在于array = ["a", "b", "f", "c", "d", "e"]
索引处,然后使用+/-
<检查该索引处的所有元素是否仅包含1
或3
/ p>
.every()
&#13;