Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический массив 
V
    Опции темы
Alexandr507
Дата 23.12.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 19.7.2009

Репутация: нет
Всего: -1



Интересует такой вопрос. Насколько я понял непосредственно динамического массива в JS нет, но наверняка существует способ  объявлять двумерный  допустим массив,   где один индекс изначально известен, а второй получается путем какого либо условия.
 
Написал такой код который вызвал ошибку в строке 13 - "Длина массива должна быть положительным конечным числом"

        
Код

var size2 = Number(4);
    var stroka = forma.x1.value;

    var arr = new Array();
    arr = stroka.split("");
    var len = arr.length;
    
    var size1 = Number(len / size2);
    if(len%size2 != 0) {++size1;}
    var all = Number(size1 * size2);


    var mas = new Array(size1);
    for(var i=0; i<size1; i++)
    {
        mas[i] = new Array(size2);
    }


PM MAIL   Вверх
bars80080
Дата 23.12.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



так проверь, что там у тебя в size1

alert(size1);

плюс, mas[i] = new Array(size2); возможно не прокатит, но зато прокатит mas[i] = [];

тут как бы надо понимать, что массив в javascript вещь не постоянная, его можно расширять и укорачивать когда вздумается. поэтому задание предела, особого смысла не имеет
PM MAIL WWW   Вверх
IDVsbruck
Дата 24.12.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Цитата(Alexandr507 @  23.12.2009,  18:32 Найти цитируемый пост)
Насколько я понял непосредственно динамического массива в JS нет

Один из самых динамических массивов, которые существуют в языках программирования. Что-то меня гложат сомнения, что под словом "динамический" ты имеешь в виду другое значение ...
PM MAIL   Вверх
Rimch
Дата 25.12.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 23.6.2007

Репутация: нет
Всего: 3



Alexandr507,  для чего вам нужен динамический массив?
Напишите конкретную задачу.

PM MAIL ICQ   Вверх
Alexandr507
Дата 25.12.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 19.7.2009

Репутация: нет
Всего: -1



Уже разобрался. переменная size1, которая является одной из размерностью массива, принимала не целочисленное значение  и из за этого и была ошибка. Привык в С++ где каждая переменная  строго типизирована, и при присвоении 
Код

 int size1 = len / size2;

  в случае если результат деления len на size2  - дробь, то  целочисленная переменная size1 просто отсекает дробную часть.

В случае 
Код

 var size1 = Number(len / size2);


Дробная часть не отсекается, так size1 не имеет конкретный тип "целое число".

Rimch, мне нужен был двумерный массив в котором одна размерность известна , другая изначально не известна, и получается  в результате некоторой формулы, то есть определяется динамически.
Но он изначально выдавал ошибку, и я решил что возможно для объявления  массива с динамически определяемыми индексами, существует какое либо другое решение.
PM MAIL   Вверх
IDVsbruck
Дата 26.12.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Можно и вовсе не использовать размерность, а просто добавлять элементы, к примеру, функцией .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. Именно такие "фичи" делают этот странный язык таким гибким smile

Это сообщение отредактировал(а) IDVsbruck - 26.12.2009, 01:22
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1226 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.