Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: для новичков > Динамический массив |
Автор: Alexandr507 23.12.2009, 18:32 | ||
Интересует такой вопрос. Насколько я понял непосредственно динамического массива в JS нет, но наверняка существует способ объявлять двумерный допустим массив, где один индекс изначально известен, а второй получается путем какого либо условия. Написал такой код который вызвал ошибку в строке 13 - "Длина массива должна быть положительным конечным числом"
|
Автор: bars80080 23.12.2009, 18:52 |
так проверь, что там у тебя в size1 alert(size1); плюс, mas[i] = new Array(size2); возможно не прокатит, но зато прокатит mas[i] = []; тут как бы надо понимать, что массив в javascript вещь не постоянная, его можно расширять и укорачивать когда вздумается. поэтому задание предела, особого смысла не имеет |
Автор: Rimch 25.12.2009, 14:33 |
Alexandr507, для чего вам нужен динамический массив? Напишите конкретную задачу. |
Автор: Alexandr507 25.12.2009, 20:09 | ||||
Уже разобрался. переменная size1, которая является одной из размерностью массива, принимала не целочисленное значение и из за этого и была ошибка. Привык в С++ где каждая переменная строго типизирована, и при присвоении
в случае если результат деления len на size2 - дробь, то целочисленная переменная size1 просто отсекает дробную часть. В случае
Дробная часть не отсекается, так size1 не имеет конкретный тип "целое число". Rimch, мне нужен был двумерный массив в котором одна размерность известна , другая изначально не известна, и получается в результате некоторой формулы, то есть определяется динамически. Но он изначально выдавал ошибку, и я решил что возможно для объявления массива с динамически определяемыми индексами, существует какое либо другое решение. |
Автор: IDVsbruck 26.12.2009, 01:21 |
Можно и вовсе не использовать размерность, а просто добавлять элементы, к примеру, функцией .push(value). А массивы в js и вовсе могут быть "красивыми", к примеру: var arr = [ [1], ['q', 0, "qwerty"], [], [3.14, null, 45, "asdfgh"] ] Причем, обращения arr[0, 1] или arr[2, 0] или arr[1, 3] ошибочны, хотя, казалось бы, массив имеет размерность 4х4. Именно такие "фичи" делают этот странный язык таким гибким ![]() |