Создание объектов из массива в объект JSON

0

У меня есть такой массив объектов, как этот

[
    {"id": "1", "name": "test"},
    {"id": "2", "name": "test2"},
    {"id": "3", "name": "test3"}
]

Я хочу преобразовать его в список объектов this

{
  "1": {"name": "test"},
  "2": {"name": "test2"},
  "3": {"name": "test3"},
}
  • 5
    «Создание объектов из массива в объект json» Вздох Это не «объект json». Это просто объект. JSON - это текстовая запись для обмена данными.
  • 0
    Почему, во-первых, вы не сгенерировали объект вместо массива объектов? Может быть, этот массив взят из любого стороннего скрипта, но я должен спросить его.
Теги:

1 ответ

6
Лучший ответ

Вы можете использовать сокращение:

var obj = arr.reduce(function(m,o){ m[o.id]={name:o.name}; return m }, {});

Обратите внимание: не забудьте прочитать и попытаться понять комментарий TJ о JSON

  • 1
    @ OP - обратите внимание, что для Array#reduce требуется современный браузер или прокладка; если вам нужно поддерживать более старые браузеры, такие как IE8, поищите опции «es5 shim».
  • 0
    @TJCrowder Ты прав, но не пора ли нам перестать это говорить? Ведь даже gmail давно перестал поддерживать IE9 (это вопрос, а не критик комментария).
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню