Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
z-z
169 / 168 / 56
Регистрация: 22.06.2011
Сообщений: 980
1

н могу понять где ошибка

31.10.2013, 12:25. Просмотров 255. Ответов 2
Метки нет (Все метки)

Здравствуйте. Помогите найти ошибку, пожалуйста...
я даже не понимаю, из-за чего она может возникнуть... вот кусок кода

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
        if(monsters.length > 0 && bullets.length > 0){
            for(var i in bullets){
                for(var j in monsters){
                    if( Math.abs(monsters[j][0] - bullets[i][0]) <= radius  && Math.abs(monsters[j][1] - bullets[i][1]) <= radius){
 // ругается вот на эту строку с условием
                        monsters.splice(j, 1);
                        bullets.splice(i, 1);
                        score++;
                    }
                }
            }
        }
в консоль кидается вот такая ошибка
Код
Uncaught TypeError: Cannot read property '0' of undefined
массивы monsters и bullets могут быть пустыми, но ведь если какой то из них пустой, то цикл просто должен остановиться и все... не понимаю, в чем прокол...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 12:25
Ответы с готовыми решениями:

SyntaxError не могу понять где
// Делегирование с инструкцией return function *createNumberIterator2() {...

Не могу разобраться где ошибка
Дано меню. По клику на определённый его пункт появляется содержание этого...

Что в коде не так? Получился вечный цикл. Не могу найти где ошибка
var a = ; var i, j, k, d, right_element, left_element, last_elements; ...

Не могу понять
В яваскрипте понимаю не оч, но нужно понять, что тут происходит.....

Не могу понять
Имею слайдер рабочий. Копирую сам слайдер код html и подключаю js и css так же...

2
kalabuni
Нарушитель
3236 / 2561 / 614
Регистрация: 18.04.2012
Сообщений: 7,702
31.10.2013, 13:02 2
либо monsters [j] не является массивом (а должен)
либо bullets [i] не является массивом (а должен)
0
z-z
169 / 168 / 56
Регистрация: 22.06.2011
Сообщений: 980
31.10.2013, 13:26  [ТС] 3
kalabuni, оба массива хранят в себе массивы из трех элементов - две координаты и угол...
немного не понятно. если monsters[j] существует, то он обязательно должен быть массивом, потому что у меня в цикле все добавляется и удаляется.

очень вероятно, что массив monsters просто пустой, то есть monsters[j] не существует... но если бы он не существовал, до него не дошел бы цикл))
и то же самое со вторым массивом...

Добавлено через 9 минут
кажется все немного прояснилось))

Javascript
1
2
3
4
5
if( Math.abs(monsters[j][0] - bullets[i][0]) <= radius  && Math.abs(monsters[j][1] - bullets[i][1]) <= radius){
                        monsters.splice(j, 1);
                        bullets.splice(i, 1);
                        score++;
                    }
если выполняется это условие, то из обоих массивов удаляется по одному элементу, которые сейчас текущие... то есть monsters[j] и bullets[i]... соответственно к ним обращаться уже нельзя... а циклы еще не закончились... но как мне остановить два вложенных цикла, если выполнилось условие?))
точнее даже не остановить, а перейти к следующему элементу?

хотя если подумать... вот мы удалили например monsters[1], тогда monsters[1] станет следующий элемент... и к нему можно будет обратиться... если конечно monsters[1] - это элемент, а не ссылка на конкретный элемент...
вобщем я запутался...))

Добавлено через 3 минуты
возможно помогла директива break... по крайней мере сейчас я не вижу ошибку больше...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 13:26

Не могу понять замыкания
Здравствуйте. В примере к теме замыканий в книге есть такой пример счетчика:...

Не могу понять код
Добрый день! Пожалуйста помогите) Расскажите мне подробнее о этом скрипте. Что...

Не могу понять условие задачи
Прошу прощения за глупый вопрос, уважаемые!:) Дано задание: &quot;Добавить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru