Доброго дня суток всем, у меня не получается создать объект так чтобы имя его свойства было заданное через переменную, вообщем лучше смотреть код:
var collector = new Object();
for (var i = 0; i<mass.length; i++){
var name = "obj"+i;
collector[name] = new Object();
}
По плану должно в объекте должно появиться несколько объектов с именами "obj1", "obj2" ... но вместо этого появляется один объект с именем "name".
Я знаю что где-то туплю, но где именно понять не могу помогите пожалуйста.
Заранее спасибо.
Да и в догонку такое присвоение неплохо работает с числами, он правда создает объект в объекте или просто создает двумерный массив?
Что-то Вы не договариваете. Ваш код отлично работает
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
for (var i = 1; i < 11; i++) { // from 1 to 10
window["Object"+i] = new Object();
}
console.log(Object7); // is not undefined
Ваш код рабочий, можно проверить тут.
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] это тоже объекты.
Не стоит путать
collector[name] = new Object();
collector.name = new Object();
В первом случае получится то, что ты хочешь, а во втором - то нежелательное поведение, которое ты описываешь.
PS: Однако в данном вопросе ты привёл код, который работает верно.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости