Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите, пожалуйста. Работа с объектами в цикле (https://javascript.ru/forum/misc/63861-pomogite-pozhalujjsta-rabota-s-obektami-v-cikle.html)

ilya111 05.07.2016 03:24

Помогите, пожалуйста. Работа с объектами в цикле
 
Ребята, уже голову сломал. в функции 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

}


}
}
}

vadim5june 05.07.2016 11:01

Вы выходите за пределы цикла когда i=3


Часовой пояс GMT +3, время: 03:16.