Как добавить объектный литерал в объектный литерал
Предполагая, что у меня есть литерал объекта, который выглядит следующим образом:
C = {"A":"a","B":"b","C":"c"};
и я хочу добавить еще один объект, как это..
"D" : {"E":e}
где e
переменная а также e = "ValueOfE"
Чтобы C
будет иметь такую ценность..
C = {"A":"a","B":"b","C":"c", "D" : { "E" : "ValueOfE"}};
Как я это сделаю?
3 ответа
Значения в литералах объекта могут быть произвольными выражениями, что означает, что они могут содержать другие литералы объекта, использовать существующие переменные и т. Д.; так что если вы спрашиваете, что я думаю, то вы можете написать:
C = { "A": "a", "B": "b", "C": "c", "D": { "E": e } };
Допустим, у вас есть литеральный объект C, например:
C = {"A":"a","B":"b","C":"c"};
Вы можете добавить любые другие объекты к нему, как:
var D = { "E" : e};
C["D"] = D;
или просто:
C["D"] = { "E" : e};
и если твой ключ ("D"
) является допустимым идентификатором, который в данном случае также можно сделать следующим образом:
C.D = { "E" : e};
Кроме этого, в некоторых старых браузерах нельзя использовать зарезервированные слова без кавычек. Например, ES3 не допускает использование зарезервированных слов без кавычек в качестве имен свойств, таких как: default
, delete
, do
, double
, else
, enum
... что здесь не так.
Вы также можете создать свой объект с использованием литерала и передать D
объект:
C = {"A":"a","B":"b","C":"c", "D":D };
а также:
C = {"A":"a","B":"b","C":"c", "D": { "E" : e } };
Дело в том, что объекты JavaScript являются своего рода HashMap
s с ключами и значениями, и используя буквальный синтаксис, вы можете создать его со всеми другими объектами и значениями в нем. а также вы можете добавлять новые пары ключ-значение после создания объекта.
Используйте следующий синтаксис:
C = {"A":"a","B":"b","C":"c"};
C.D = {"E":e};