Объекты JS: как динамически именовать элементы при добавлении свойств - PullRequest
0 голосов
/ 19 марта 2012

Я пытаюсь создать новый элемент объекта с динамически создаваемой строкой в ​​качестве имени элемента:

  > obA = {};
  > obb = {name:'jim', age:22};
  > var s = new String(obb.name);
  > obb;                       //{ name: 'jim', age: 22 }
  > obA.s = obb;               //{ name: 'jim', age: 22 }
  > obc = {name:'don', age:23};
  > var c = new String(obc.name);
  > obA.c = obc;
  > obA;
        outputs the folowing
             { s: { name: 'jim', age: 22 },
               c: { name: 'don', age: 23 } }

В этом примере я хотел бы добавить членов 'jim' и 'don' к obA , а не 's' и 'c' . Вместо моих звонков выше добавьте участников 's' и 'c' . Есть ли способ динамического именования членов, чтобы я мог добавить 'jim' и 'don' во время выполнения, не зная заранее имена членов. В приведенном выше примере я хочу получить от 'obA' в конце:

  > obA;
   // should output
        { jim: { name: 'jim', age: 22 },
          don: { name: 'don', age: 23 } }

Ответы [ 3 ]

3 голосов
/ 19 марта 2012

Используйте скобочные обозначения.

obj['property'] = value;
2 голосов
/ 19 марта 2012

Попробуйте [] вместо точки.

obA[s] = obb;
obA[c] = obc;
1 голос
/ 19 марта 2012
obA[obb.name] = obb;
obA[obc.name] = obc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...