如何解决包含对象的数组到包含所述对象的单个对象
我目前正在从Firebase Firestore集合中以这种格式获取所有数据:
@media only screen and (min-width: 1024px) {
.menu-toggle + nav {
display: none;
}
}
为了能够通过Redux更好地访问此数据,我需要将其转换为以下格式:
[
{
id: GEU8E3UJSSB33749K,advancedPayments: 20,...
},{
id: FETB73UJSSBREF59V,},...
]
我该怎么做?
解决方法
使用Array#reduce累积数据。对您的对象进行迭代会在累积的对象中创建id的属性,并将整个对象添加到其中。在此之后删除ID。
注意:我添加了整个对象并删除了id属性,而是遍历了所有属性,并检查键是否与id不相等,并仅将它们添加到新对象中,因为这样做应该更快(尤其是如果您有很多miore属性)。
let arr = [
{
id: 'GEU8E3UJSSB33749K',advancedPayments: 20,},{
id: 'FETB73UJSSBREF59V',}
];
let res = arr.reduce((acc,cur) => {
acc[cur.id] = cur;
delete acc[cur.id].id;
return acc;
},{});
console.log(res);
,
尝试一下
let res = [
{
id: 'GEU8E3UJSSB33749K',{
id: 'FETB73UJSSBREF59V',}
].reduce((accumulator,obj) => {
const {advancedPayments} = obj;
return {
...accumulator,[obj.id]: { advancedPayments }
};
},{});
console.log(res);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。