Не работает создание объекта с именем через переменную

216
23 декабря 2017, 07:06

Доброго дня суток всем, у меня не получается создать объект так чтобы имя его свойства было заданное через переменную, вообщем лучше смотреть код:

var collector = new Object();
for (var i = 0; i<mass.length; i++){
    var name = "obj"+i;
    collector[name] = new Object();
}

По плану должно в объекте должно появиться несколько объектов с именами "obj1", "obj2" ... но вместо этого появляется один объект с именем "name".

Я знаю что где-то туплю, но где именно понять не могу помогите пожалуйста.

Заранее спасибо.

Да и в догонку такое присвоение неплохо работает с числами, он правда создает объект в объекте или просто создает двумерный массив?

Answer 1

Что-то Вы не договариваете. Ваш код отлично работает

var collector = new Object(); 
for (var i = 0; i < 3; i++) { 
  var name = "obj" + i; 
  collector[name] = new Object(); 
} 
console.log(collector['obj2']);  // {} 
console.log(collector['name']);  // undefined

Answer 2
for (var i = 1; i < 11; i++) { // from 1 to 10
    window["Object"+i] = new Object();
}
console.log(Object7); // is not undefined
Answer 3

Ваш код рабочий, можно проверить тут.

var collector = new Object(); 
for (var i = 0; i<5; i++){ 
    var name = "obj"+i; 
    collector[name] = new Object(); 
} 
 
console.log(JSON.stringify(collector));

он правда создает объект в объекте или просто создает двумерный массив?

collector это объект, дочерние элементы его collector.obj[1-N] это тоже объекты.

Answer 4

Не стоит путать

collector[name] = new Object();
collector.name  = new Object();

В первом случае получится то, что ты хочешь, а во втором - то нежелательное поведение, которое ты описываешь.

PS: Однако в данном вопросе ты привёл код, который работает верно.

READ ALSO
Разпознать кактинку с помощью javascript

Разпознать кактинку с помощью javascript

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

213
Остаток от деления с fmod

Остаток от деления с fmod

Необходимо проверять кратность количества и коэффициентаКазалось, остаток от деления должен быть 0, но нет, выводит некоторое значение

303
Рекурсия PHP и фреймворк Laravel

Рекурсия PHP и фреймворк Laravel

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

260
Как проверить подключение к БД в MODx revo

Как проверить подключение к БД в MODx revo

Как проверить подключение к удаленной БД на MODx revo, если подключаюсь через redbeanphp (ORM)

250