Помогите, пожалуйста. Работа с объектами в цикле
Ребята, уже голову сломал. в функции moveDown() перебираю массив объектов, чтобы найти объект, где его свойство value не равно 0. Хочу изменить свойство value следующего объекта. Однако браузер ругается - Cannot read property 'число' of undefined. При чем в console.log он видит этот объект. Пометил в коде где конкретно стопорнулся.
var foo = [];
function Dog(x, y) {
this.value = 0;
this.x = x;
this.y = y;
}
for (i = 0; i < 4; i++) {
foo[i] = [];
for (j = 0; j < 4; j++) {
foo[i][j] = new Dog(i, j);
}
}
function remdom(){
var first = Math.floor(Math.random() * 4),
second = Math.floor(Math.random() * 4);
foo[first][second].value = 2 * (Math.floor(Math.random() * 2) + 1);
}
remdom();
document.onkeydown = function (event) {
if (event.keyCode == 40 || event.keyCode == 83) moveDown();
}
function moveDown(){
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if(foo[i][j].value){
foo[i][j].value = 4;
foo[i+1][j].value = 8; // Не присваивается значение свойства объекта пишет Cannot read property 'число' of undefined
}
}
}
}
|