У меня есть такой массив объектов, как этот
[
{"id": "1", "name": "test"},
{"id": "2", "name": "test2"},
{"id": "3", "name": "test3"}
]
Я хочу преобразовать его в список объектов this
{
"1": {"name": "test"},
"2": {"name": "test2"},
"3": {"name": "test3"},
}
Вы можете использовать сокращение:
var obj = arr.reduce(function(m,o){ m[o.id]={name:o.name}; return m }, {});
Обратите внимание: не забудьте прочитать и попытаться понять комментарий TJ о JSON
Array#reduce
требуется современный браузер или прокладка; если вам нужно поддерживать более старые браузеры, такие как IE8, поищите опции «es5 shim».