Как преобразовать коллекцию пожарного магазина в полезный объект - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть коллекция валют в firestore, которая называется "валюты".В коллекции есть документы, названные в соответствии с валютой (например, «евро», «доллар» и т. Д.).

Я запрашиваю коллекцию и получаю массив всех документов в коллекции, например:

[{euro:{dollar: 2}},
{dollar:{euro: 0.5}}]

Я хотел бы превратить это в Объект с идентификаторами документов в качестве ключей объекта, например:

{{euro:{dollar: 2}},
{dollar:{euro: 0.5}}}

Чтобы я мог получить доступ к Object.keys (obj) для доступа ко всем доступным валютам, таким кактак:

console.log(Object.keys(obj)) ---> [euro], [dollar]

Это кажется мне невероятно простым, но я изо всех сил пытаюсь достичь этого, так как не понимаю разницы между array.map, array.foreach array.reduce, Object.assign,и т. д.

Какой из них мне следует использовать, а какой из них самый элегантный (читай: самый короткий)?

1 Ответ

2 голосов
/ 10 апреля 2019

Вы можете использовать деструктуризацию объекта или Object.assign() в reduce()

const data = [{euro:{dollar: 2}},{dollar:{euro: 0.5}}]

const res = data.reduce((a, c) => ({...a, ...c}), {});
// or res = data.reduce((a, c) => Object.assign(a, c), {});   

console.log(res)
...