微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

包含对象的数组到包含所述对象的单个对象

如何解决包含对象的数组到包含所述对象的单个对象

我目前正在从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 举报,一经查实,本站将立刻删除。