Javascript 如何检查2D数组在一行中是否有3个相同的值

Javascript 如何检查2D数组在一行中是否有3个相同的值,javascript,arrays,loops,Javascript,Arrays,Loops,我只是想知道如何检查我的2D数组中是否有3个相同的值 我试着在这里搜索,或者在谷歌上搜索,但没有什么真正帮助我。唯一接近我目标的就是这个 function check(array, length) { var count = 0, value = array[0]; return array.some(function (a) { if (value !== a) { count = 0; value = a; } return

我只是想知道如何检查我的2D数组中是否有3个相同的值

我试着在这里搜索,或者在谷歌上搜索,但没有什么真正帮助我。唯一接近我目标的就是这个

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
但它不适用于这样的2D阵列。我真的不知道该怎么做

Let arr=[
 [" ", " "," "],
 [" ", " "," "],
 [" ", " "," "],
]
请记住,此2D数组将由用户在应用程序开始时生成。它可以是任意长度。例如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 count=0;
让searchedValue=“x”;
让三个相同的=错误;

For(设i=0;i这里是执行此操作的函数。请确保仅当您知道数组已正确生成且至少有一行和一列时才发送数组

const check=(数组,长度)=>{
让值=数组[0][0]
让计数=0
for(设i=0;i0&&array[i][j]==value){
计数++
}
否则{
值=数组[i][j]
计数=1
}
}
}
返回计数===长度

}
Let array=['',
将导致一些语法错误,正如
Let ThreeSame=false;For(Let i=0;
和该代码块的其余部分抱歉,我已经在移动设备上编写了所有代码块。这是因为滴答声。现在应该可以了,对我不起作用。尝试将这样的数组发送给它,让arr=['','',“x”,“x”],[“x”,“x”,“x”,“x”,“x”,“x”,“x”,“x”,“x”,“x”,“x”,“x”,并返回true。预期结果为false OK,我明白你的意思。我编辑了代码段,因此现在它不会将“”(空字符串)视为实际元素。但是,您发布的数组仍然返回true,因为一行中有4个x(2个在第一行末尾,2个在第二行开头).是否要检查一行中是否正好有3个x,并且没有更多?