如何将Firestore集合转换为有用的对象

时间:2019-04-10 01:03:01

标签: javascript arrays object google-cloud-firestore mapping

我在Firestore中有一个货币集合,称为“货币”。集合中包含以货币命名的文件(例如“欧元”,“美元”等)。

我正在查询集合,并收到集合中所有文档的数组,如下所示:

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

我想将其转换为具有文档ID作为对象键的对象,如下所示:

{{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 个答案:

答案 0 :(得分:2)

您可以在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)