@nomta

Можно ли динамически создать массив объектов?

Есть некий массив, объекты и, допустим, конструктор:
class Figure {
	conctructor(name) {
		this.name = name;
	}
}

let figures = ['circle', 'ellipse', 'rectangle', 'square', 'triangle'];
let [circle, ellipse, rectangle, square, triangle] = new Figure(' ');


Как превратить это в массив объектов класса Figure, где свойство name каждого объекта соответствует имени объекта?

Такое (и подобное) не работает:

let [circle, ellipse, rectangle, square, triangle] = figures.map(
    (item) => new Figure(item)
);


Создаются объекты без имени, без личных свойств. И как их еще собрать в массив, непонятно.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
potapchino
@potapchino
Такое (и подобное) не работает:

let [circle, ellipse, rectangle, square, triangle] = figures.map(
    (item) => new Figure(item)
);


Работает, просто у вас опечатка: conСtructor(name)
https://repl.it/GYXL
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shaks
@shaks
Если я правильно понял поставленную задачу, то вот:
class Figure {
    constructor(name){
        this.name = name
    }
}
['circle', 'ellipse', 'rectangle', 'square', 'triangle'].every(x => window[x] = new Figure(x))
/*eslint-disable */
console.log(circle)
/*eslint-enable */

На выходе вы получаете переменные из массива, которые являются объектами класса Figure
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы