пытается построить HTML тральщик игру им довольно много начинающих и им пытается получить OnClick, чтобы проверить, что окно равно значению бомбы пятнаJavascript массив IndexOf не работает
Javascript я использую для заполнения мой элемент «таблица» (с идентификатором «сетки») дает каждой коробке/TD идентификатор 0-99
var gameBox = "";
for (var i = 0 ; i < 10 ; i++) {
gameBox += "<tr>";
for (var j = 0 ; j < 10 ; j++) {
var idValue = i * 10 + j;
gameBox += "<td class = 'box' id = '" + idValue + "' onclick = 'process(this);' ></td>";
}
gameBox += "</tr>";
}
document.getElementById("grid").innerHTML = gameBox;
Heres массив бомбы intializer придав ему длину 10
var bomb = [];
for (var i = 0 ; i < 10 ; i++) {
bomb[i] = 0;
}
после пользовательский клик кнопку К.С. начать (Херес HTML :)
<input type="button" class="MtopSmall" value="start!" name = "startButton" onclick = "start();" >
они вызывают функцию запуска, которая присваивает 10 различных случайных чисел 0-99
function start() {
for (var i in bomb) {
var number = Math.floor(Math.random() * 100);
if(bomb.indexOf(number) >= 0){
reassign(i);
} else {
bomb[i] = number;
}
}
console.log(bomb);
}
function reassign(i) {
var number = Math.floor(Math.random() * 100);
if(bomb.indexOf(number) >=0)
{
reassign(i);
} else {
bomb[i] = number;
}
}
тогда, когда они нажимают на коробку (TD) он запускает процесс функция
function process(clicked) {
//change box look
clicked.style.backgroundColor = "#ffffff";
clicked.style.border = "1px solid black";
bombCheck(clicked);
}
который вызывает bombCheck()
bombCheck(event)
var boxNum = event.id;
function bombCheck(event) {
if (bomb.indexOf(boxNum) >=0) {
event.innerHTML = "B";
alert("you clicked a bomb");
}
}
проблема заключается в том, что конечный индекс (тот, который находится в бомбардировке) всегда возвращает -1 погоду или не ее бомбу (и я проверяю, какие бомбы с помощью console.log), как вы можете видеть, я использовал аналогичный check-check index ранее в тот же сценарий, и он работает просто отлично плз помочь мне
Вы, кажется, обрабатывать строку как число .. проверить ответ ниже – woofmeow
я сделал это сейчас работает спасибо всем, что помогли –