【发布时间】:2020-10-22 22:08:51
【问题描述】:
我只是想知道如何检查我的二维数组中是否有连续 3 个相同的值。
我尝试在此处或在 Google 上搜索它,但没有任何帮助。唯一最接近我目标的就是这个。
function check(array, length) {
var count = 0,
value = array[0];
return array.some(function (a) {
if (value !== a) {
count = 0;
value = a;
}
return ++count === length;
});
}
console.log('length: 3');
console.log(check(["g", "z", "z", "z"], 3)); // true
console.log(check(["g", "z", "z", "v" ,"b", "b", "b"], 3)); // true
console.log(check(["z", "g", "z", "z"], 3)); // false
但它不适用于像这样的二维数组。而且我真的不知道如何使这项工作发挥作用。
Let arr=[
[" ", " "," "],
[" ", " "," "],
[" ", " "," "],
]
请记住,此二维数组将由用户在应用启动时生成。它可以是任何长度。例如 6x6 , 3x3 等
因此需要有一种方法可以遍历所有行和列。
我尝试过这样做,它部分有效。问题是,它不仅连续计算 3 个,而且连续计算 3 个。
Let count = 0;
Let searchedValue = "x";
Let ThreeSame=false;
For(let i=0;i<arr.length;i++){
For(let j=0;j<arr[i]+length;i++){
If(arr[i][j] === searchedValue){
count++
}
If(count === 3){
Return ThreeSame=true;
}
}
}
最好的方法是水平、垂直和对角线检查。
谢谢。
【问题讨论】:
-
Let array=[ [‘’,会导致一些语法错误,Let ThreeSame=false; For(let i=0;和该代码块的其余部分也会导致 -
对不起,我都是在手机上写的。所以那是因为蜱虫。现在应该可以了
标签: javascript arrays loops