я работаю над программой тральщика, и вот моя проблема:Ошибки Javascript при попытке получить доступ к элементу из массива
Так что я сделать сетку 10х10 полных объектов MineSquare, которое я определил ранее.
var grid = [];
for (var i=0; i<10; i++){
grid.push([]);
for (var j=0; j<10; j++){
grid[i].push(new MineSquare())
}
}
Затем я создаю массив «bomb_list», чтобы создать 20 уникальных мест, где будут находиться бомбы.
var bomb_list = [];
var found;
var rand;
while (bomb_list.length < 20){
found = false;
rand = Math.floor(Math.random() * 100);
for (var i=0; i<bomb_list.length; i++){
if (bomb_list[i] === rand){found=true; break;}
}
if(!found){
bomb_list.push(rand);
}
}
Затем я пытаюсь изменить значение этих MineSquare, чтобы указать, что они бомбы.
for(var x in bomb_list){
grid[ x/10 ][ x % 10 ].touching = -1;
}
Я получаю сообщение об ошибке: «Uncaught TypeError: Не удается прочитать свойство„1“неопределенных», который я считаю, причиняется, когда я пытаюсь взять сетки [х/10].
По какой причине это происходит?
Не знаю, если это * * причина, но я думаю, что 'х/10' должен быть' (х - x% 10)/10'. – GolezTrol
другие ответили уже за исключением того, что вы также неправильно поняли, как работает Javascript для работы - нужно сделать что-то вроде: 'var i = bomb_list [x]' в этом цикле. Я сделал jsfiddle, где отлаживали и исправляли это тоже, с этим и Math.floor: https://jsfiddle.net/sg9dgpr0/ – antont