Помогите, пожалуйста. Работа с объектами в цикле
Ребята, уже голову сломал. в функции 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 } } } } |
Вы выходите за пределы цикла когда i=3
|
Часовой пояс GMT +3, время: 13:53. |