Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли в JavaScript в имя встроить переменную?  (Прочитано 17520 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« : 15-03-2007 22:01 » 

ну хотяб вот для примера
for(i=1;i<=n;i++){ri=new Array();}
Какбы алгорит плодит столько массивов, сколько n. только это конечно неправильно.
Или если нельзя такое делать, то как по-другому создать динамическое кол-во объектов с разными именами?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 16-03-2007 06:14 » 

Код: (Javascript)
var a;
var i;
var n = 10;

for (i = 0; i < n; i++)
    a[i] = new Array();

Конструкцию new Array() можно заменить на [].

Чего ты хочешь получить? (вопрос сам то читал?)
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 16-03-2007 18:40 » 

RXL, а
можно вопрос? - какими еще способами можно создать подобия двумерного массива кроме
ar=new Array();
ar[0]=new Array();
ar[1]=new Array();
« Последнее редактирование: 16-03-2007 18:53 от Razor » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 16-03-2007 18:54 » 

"а" - имя переменной.

Массив в JS - это объект типа Array, содержащий вектор значений (одномерный массив). Корреляции с С нет: массив не имеет жестких границ (динамический размер) и не может быть многомерным.
Многомерные массивы имитируются:

Код: (Javascript)
var a;

// создание при инициализации
a = [[0, 1, 2, 3], [4, 5, 6, 7, 8, 9]];

// динамическое создание
a = Array();
a.push(Array(0, 1, 2, 3));
a.push(Array(4, 5, 6, 7, 8, 9));

// тоже динамическое, но менее удобное и гибкое
a = [];
a[0] = [];
a[1] = [];
a[0][0] = 0;
a[0][1] = 1;
//.....
a[1][5] = 9;

Структурно такой массив не матрица, а дерево!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 16-03-2007 19:04 » 

RXL, благодарю)
а "а" - там еще было i  в сковках за ним квадратных, я уже въехал и затер его...
но i в квардратных скобках почему-то не отобразилось
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #5 : 16-03-2007 19:22 » 

форум воспринял [i] как тег переводящий шрифт в italic и не показал ег
Записан

Удачного всем кодинга! -=x[PooH]x=-
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 16-03-2007 19:40 » 

PooH, именно!
Razor, используй тег [code] ..... [/code] и все будет в порядке.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 14-08-2008 11:33 » 

Цитата: RXL
Массив в JS - это объект типа Array, содержащий вектор значений (одномерный массив).
Я бы сказал, что это скорее хэш-таблица, нежели одномерный массив, поскольку индексы, хотя по умолчанию и числа, могут быть чем угодно.

Не ручаюсь за все интерпретаторы, но обычно это работает:
Код: (Javascript)
function print(x)
{
        // Какой-либо способ вывода, специфичный для конкретного интерпретатора.
}

var s = "test";
var f = function()
        {
                this.x = 3;
        };
var o = new f();

var a = new Array();
a[s] = o;
a[o] = s;
a[f] = s;
a[o] = f;

for(var key in a)
{
        var value = a[key];

        print(String(key) + ": " + String(value));

        (function(os)
        {
                for(var i in os)
                        if(os[i] instanceof Object)
                                print(os[i].x);
        })(new Array(key, value));
}
Тут и строка, и объект, и функция могут выступать как в качестве ключа, так и значения.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 14-08-2008 11:54 » new

Тут и строка, и объект, и функция могут выступать как в качестве ключа, так и значения.
Потому, как все объекты JS имеют метод toString.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines