У меня есть коллекция валют в firestore под названием «валюты». В коллекции есть документы, названные в честь валюты (например, «евро», «доллар» и т. д.).
Я запрашиваю коллекцию и получаю массив всех документов в коллекции следующим образом:
[{euro:{dollar: 2}},
{dollar:{euro: 0.5}}]
Я хотел бы превратить это в объект с идентификаторами документов в качестве ключей объекта, например:
{{euro:{dollar: 2}},
{dollar:{euro: 0.5}}}
Чтобы я мог получить доступ к Object.keys(obj) для доступа ко всем доступным валютам, например:
console.info(Object.keys(obj)) ---> [euro], [dollar]
Мне это кажется очень простым, но я изо всех сил пытаюсь добиться этого, поскольку не понимаю разницы между array.map, array.foreach, array.reduce, Object.assign и т. д.
Какой из них я должен использовать и какой из них самый элегантный (читай: самый короткий) для этого?
Вы можете использовать деструктурирование объекта или 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.info(res)
Спасибо, Чарли! Попробую дома и отчитаюсь. Но это выглядит хорошо. Мне придется прочитать о расширении (...a). Кажется, это правильный путь. Очень признателен.