| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Не получается 2-мерный массив. |
| Автор: kuksha 8.1.2012, 17:15 | ||||
| Пытаюсь сделать 2-мерный массив 650x650 в виде глобального, чтобы потом вызывать из функций. Сделал это так, на большее знаний не хватило:
Собственно указана сбойная строка, на которой скрипт "вылетает". (вместо zv_n[i] я пробовал подставлять и строки и числа - всё равно сбоит) Наверное лучше посмотреть это вживую в файле: http://info-7.ru/Astro/draw_map5.js строка №171. При этом строка №903
отрабатывает нормально. Что я не так делаю? |
| Автор: kuksha 8.1.2012, 21:17 |
| Может просто for не отрабатывает так как это прописано? Ведь из PHP-файла вызываются конкретные функции из этого js-файла, а заполнение второго измерения этого массива идёт через for вне функций, который то ли отрабатывает то ли нет. С другой стороны - ведь глобальные переменные подцепляются нормально, а некоторые и вычисляются... Не знаю в какую сторону ещё думать... Может есть другие способы задания такого массива? |
| Автор: Amphiluke 8.1.2012, 21:46 |
| kuksha, вам сложно помочь, не видя, что за ошибка. Что пишется в консоль конкретно? Файл вашего скрипта мало чем может помочь в выяснении обстоятельств ошибки. Гораздо легче было бы, если бы вы дали ссылку на страницу, где проявляется баг. |
| Автор: kuksha 8.1.2012, 22:00 |
| Вот сама страница, с которой вызывается этот файл: http://info-7.ru/Astro/nebo_segodnya_geo5.php?zero=1 на ней рисуются линии созвездий, а дальше должны рисоваться звёзды, но их нет - из этого цикла мы и вылетаем... А вот для сравнения: http://info-7.ru/Astro/nebo_segodnya_geo.php?zero=1 |
| Автор: Amphiluke 8.1.2012, 22:18 |
Методом простой трассировки скрипта выясняется, что переменные X и Y могут принимать совершенно произвольные значения: как отрицательные, так и бОльшие, чем размерность массива Dot_data. Следовательно, причина в неправильных индексах. |
| Автор: kuksha 8.1.2012, 22:22 |
| АЙ!!!!! точно... это же координаты... Очередное спасибо! Amphiluke, а чем Вы пользуетесь для отладки? Может у меня бы вопросов поменьше стало... |
| Автор: Amphiluke 8.1.2012, 22:22 |
| Кстати (простите), я надеюсь, это черновая версия скрипта? Добавлено через 30 секунд Firebug`ом. |
| Автор: kuksha 8.1.2012, 22:31 |
| Там много чего "оставленного на потом", начиная с var в каждой строчке... Я же JS по-большому счёту почти не знаю - это первое что на нём пишу... |
| Автор: Amphiluke 8.1.2012, 22:46 | ||
Кстати (не по теме). Когда пишете документ в новом окне методом document.write, не забывайте закрывать поток вывода методом document.close(). В отличие от document.open(), вызов этого метода обязателен…
|
| Автор: kuksha 8.1.2012, 23:09 |
| Ага, учту |
| Автор: kuksha 10.1.2012, 19:07 |
| Вот такой вопрос образовался: А как быстрее всего упомянутый в первом сообщении глобальный двумерный массив Dot_data "опустошить" по ходу работы? То есть не залить нулями в цикле, а так чтобы он просто был пустым (null). (по ходу работы заполняются только некоторые его ячейки, остальные должны остаться null) Двойным циклом как-то некрасиво делать, а сделать его заново (когда он весь null) внутри функций наверное помешает его глобальность. |