@HappyCougar

Значение переменной, как название массива в объекте?

Создаю объект и вношу в него значения. Существует переменная domaIn, в ней значение допустим "simple.ru". Как сделать что-бы в объект заносилось значение переменной, а не слово domaIn.

var output_urls = {};
output_urls.domaIn = {};
output_urls.domaIn.redirect_status = true;
output_urls.domaIn.redirect_urls = [1,2,3];
  • Вопрос задан
  • 284 просмотра
Решения вопроса 2
evgeniy8705
@evgeniy8705
Повелитель вселенной
Для начала, объект это ассоциативный массив, хранящий ключ-значение.
var object = {
  key: value
};


Доступ к свойству объекта можно осуществить при помощи:
1. Оператора доступа "точка".
object.key

2. При помощи скобок, визуально обращаясь к элементу массива.
object[key] // key - строковый тип

Далее:

1. В вашем случае вы создаете "пустой" объект при помощи литерала.
var output_urls = {};
2. Добавляете одно свойство.
output_urls.domaIn = {}; // данное свойство является пустым объектом

3. В добавленное свойство (объект), добавляете свойство со своим значением.
output_urls.domaIn.redirect_status = true;
4. Повторяете 3-тий шаг.
output_urls.domaIn.redirect_urls = [1,2,3];

У вас получился объект следующего вида.
output_urls:
  "domaIn":
    redirect_status:
      true,
    redirect_urls:
      [1, 2, 3]


И в общем, не знаю правильно или нет я понял вас, вам нужно следующее решение:
var output_urls = {};
output_urls[domaIn] = {};
output_urls[domaIn].redirect_status = true;
output_urls[domaIn].redirect_urls = [1,2,3];


Теперь при любом валидном значении переменной domaIn, в объекте ключом будет именно значение переменной а не ее имя.

В итоге при значении переменной domaIn = "simple.ru", получится объект вида:
output_urls:
  "simple.ru":
    redirect_status:
      true,
    redirect_urls:
      [1, 2, 3]
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Проект "Жизнь после смерти" - lifeafterdeath.ru
var output_urls = {};
output_urls[domaIn] = {};
output_urls[domaIn].redirect_status = true;
output_urls[domaIn].redirect_urls = [1,2,3];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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