@vizavill

Как установить имя объекта из переменной?

Как установить имя объекта из переменной?
Например

{ countBase: { type: 'base_t' } }

как сделать так чтоб имя атрибута можно было установить из переменной?
  • Вопрос задан
  • 1263 просмотра
Пригласить эксперта
Ответы на вопрос 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Да, пожалуй, напрямую никак:) По спецификации именем свойства может быть значение строки или символа.
Вариантов работы несколько (откуда берётся возраст, не знаю:).

По старинке (или для словарей)
var countName = [
		'Петя',
		'Вася'
	];

for (var i = 0, data = []; i < countName.length; ++i) {
	data.push({});
	data[data.length - 1][countName[i]] = {
		age: 10
	};
}

Те же шары, только сбоку
for (var i = 0, data = []; i < countName.length; ++i) {
	data.push(set(countName[i], 10));
}

function set (name, value) {
	var object = {};

	object[name] = {
		age: value
	};
	return object;
}

Или с использованием Object.defineProperty() (можно варьировать параметры свойства)
for (var i = 0, data = []; i < countName.length; ++i) {
	data.push(set(countName[i], 10));
}

function set (name, value) {
	var object = {};

	Object.defineProperty(object, name, {
		value: {
			age: value
		}
	});
	return object;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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