Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание массива из пронумерованных объектов (https://javascript.ru/forum/misc/61386-sozdanie-massiva-iz-pronumerovannykh-obektov.html)

Arthur_miko 16.02.2016 11:52

Создание массива из пронумерованных объектов
 
Я в недоумении.
Решил было создать массив объектов следующего вида:

arr = [obj_1, obj_2, obj_3 ... obj_n];

Начал писать для этого цикл, но обнаружил, что понятия не имею как создавать переменную так, чтобы менялся её номер.

Google ответа не подсказал, остаётся надежда на Вас, товарищи :-?

рони 16.02.2016 11:54

Цитата:

Сообщение от Arthur_miko
как создавать переменную так, чтобы менялся её номер.

а зачем нужна переменная?

AciDWarrioR 16.02.2016 12:29

Arthur_miko,
Если я правильно понял.
var obj = [];
var n =10;
for (i=0; i<n; i++){
	obj[i] = "obj_"+i;
	alert("obj"+i+"="+obj[i]);
}

Arthur_miko 16.02.2016 20:45

рони
Цитата:

Сообщение от рони (Сообщение 407993)
а зачем нужна переменная?

Особой задачи у неё нет, пока. Сейчас мне будет достаточно и массива, через:
function Obj(number) {
  this.num = 'num_' + number;
  this.value = 0;
};

var objArr = [];
for (var i = 0; i < 100; i++) {
  objArr[i] = new Obj(i);
}

Только дело в том, что тогда получается подобный массив

objArr = [Obj, Obj, Obj ... Obj]

В итоге, у каждого объекта есть нужное мне свойство num, с соответствующим номером, но сами объекты именуются одинаково, что меня озадачило и я решил узнать, можно ли сделать как-то иначе.

AciDWarrioR
Не совсем, мне нужны именно объекты, а не строки.

рони 16.02.2016 21:06

Arthur_miko,
так имя то обьекта вам зачем? где оно пригодится?

Deff 16.02.2016 23:52

Arthur_miko,
А не проще сделать так ?
var obj = {}
var j = 0;
var obj[j] = {}
j++

Тогда весь массив объектов можно узнать по текущему индексу j

Arthur_miko 17.02.2016 11:59

Рони,
Имя мне нужно, чтобы не было одинаково названных объектов в массиве. Это не критично, просто я первый раз столкнулся с подобной ситуацией.

Deff,
Код из вашего сообщения у меня приводит к
Цитата:

Uncaught SyntaxError: Unexpected token [
Зато такой вариант, действительно проще
var j = 0;
var obj = [];
obj[j] = {}
j++

Спасибо.

рони 17.02.2016 12:41

Цитата:

Сообщение от Arthur_miko
Имя мне нужно, чтобы не было одинаково названных объектов в массиве.

непостижимо для меня.


Часовой пояс GMT +3, время: 12:02.