Как найти элемент массива внутри if?
let winningVariants = [
[0, 1, 2],
[0, 3, 6],
[0, 4, 8],
[2, 5, 8],
[2, 4, 6],
[1, 4, 7],
[3, 4, 5],
[6, 7, 8]
];
let playBoard = [];
const symbols = ['X', '0'];
function findWinner() {
for (let g = 0; g < playBoard.length; g++) {
for (let f = 0; f < winningVariants.length; f++) {
if (playBoard[g] === symbols[1] &&
Array.indexOf(playBoard[g]) === winningVariants[f][0] &&
Array.indexOf(playBoard[g]) === winningVariants[f][1] &&
Array.indexOf(playBoard[g]) === winningVariants[f][2]) {
console.log('First player wins!');
} else if (playBoard[g] === symbols[0] &&
Array.indexOf(playBoard[g]) === winningVariants[f][0] &&
Array.indexOf(playBoard[g]) === winningVariants[f][1] &&
Array.indexOf(playBoard[g]) === winningVariants[f][2]) {
console.log('Second player wins!');
}
}
}
}
В playBoard добавляются элементы в место по индексу кнопки, на которую нажал пользователь. Я пытаюсь построить проверку, являются ли 3 элемента одинаковые и находятся ли на всех 3 позициях (индексах) из выигрышного варианта. В данном примере я получаю ошибку TypeError: Array.indexOf is not a function.
(In 'Array.indexOf(playBoard[g])', 'Array.indexOf' is undefined)
.
Как можно ёё исправить или как правильно написать такую проверку?
Источник: Stack Overflow на русском