HUH函數
2023-06-09 15:22:42
我試圖找出如何檢查二維數組是否連續包含 3 個相同的值。此二維數組將由用戶生成,因此用于檢查的函數必須是動態的。例如,假設用戶輸入 4x4。結果會是這樣 let arr=[ [" "," "," "," "], [" "," "," "," "], [" "," "," "," "], [" "," "," "," "] ]讓我向該數組添加一些值 let arr=[ [" "," ","x","x"], ["x","x","x"," "], [" "," "," "," "], [" "," "," "," "] ]我試圖用這個函數來解決這個問題,但昨天我注意到它不適合。 function checkArray(arr){ for(let i=0;i<arr.length;i++){ let count = 0; for(let j=0;j<arr[i].length;j++){ if(arr[i][j] === 'x'){ count++; } if(count === 3 ){ console.log('x wins') } } } } console.log(checkArray(arr)) //count will be 3 and console.logs 'x wins'.此時此刻,我認為一切正常,直到我嘗試像這樣填充數組。如您所見,沒有連續三個 X(我的意思是它們不是這樣的 - x,x,x),它們之間有一個空格。 let arr=[ [" "," ","x","x"], ["x","x"," ","x"], [" "," "," "," "], [" "," "," "," "] ]所以不應該滿足條件并且函數不應該是 console.log('w wins')。但確實如此。我解決這個問題的方法適用于整行,而不僅僅是連續 3 個 (x,x,x)。我希望我已經解釋清楚了。謝謝你的建議。
1 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
如果您沒有獲得 . ,則需要重置計數'x'。
function checkArray(arr) {
for (let i = 0; i < arr.length; i++) {
let count = 0;
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] === 'x') {
count++;
if (count === 3) { // place check after incrementing
console.log('x wins')
return true;
}
} else {
count = 0; // reset
}
}
}
return false;
}
let arr = [
[" ", " ", "x", "x"],
["x", "x", " ", "x"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]
]
console.log(checkArray(arr));
添加回答
舉報
0/150
提交
取消