我在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等之间的区别,我在努力实现这一目标。
我应该使用哪一种,哪一种最优雅(阅读:最短)?
最佳答案
您可以在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)
关于javascript - 如何将Firestore集合转换为有用的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55603309/