Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2016, 03:26
Новичок на форуме
Отправить личное сообщение для ilya111 Посмотреть профиль Найти все сообщения от ilya111
 
Регистрация: 05.07.2016
Сообщений: 5

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

}


}
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2016, 04:20
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

ilya111, мб так?
function moveDown(arr) {
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr[i].length; j++) {
      if(arr[i][j].value && j < arr[i].length - 1) {
        arr[i][j].value = 4;
        arr[i][j + 1].value = 8;
      }
    }
  }
}
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2016, 14:50
Новичок на форуме
Отправить личное сообщение для ilya111 Посмотреть профиль Найти все сообщения от ilya111
 
Регистрация: 05.07.2016
Сообщений: 5

Спасибо!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка 340 при запуске простого .js файла ksu_dp Node.JS 0 15.01.2016 09:09
Ошибка 500 при обращении через аякс imedia AJAX и COMET 1 04.07.2015 14:08
как при задании массива задать отрицание imedia Элементы интерфейса 2 19.11.2014 11:38
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17