javascript - 从 JSON 响应创建对象并删除不需要的键值

标签 javascript arrays json

我收到如下 JSON 响应:

bills : [
             {
                id: '111',
                date: '22 Jan 2020',
                amount: -250.00
            },
            {
                id: '222',
                date: '08 Jan 2020',
                amount: 700.00
            },
            {
                id: '333',
                date: '08 Feb 2020',
                amount: -250.00
            },
            {
                id: '788-609098-129169487',
                date: '08 Feb 2020',
                amount: 120.00
            }
    ]

我想要一个仅包含日期金额的对象,其中总计为金额,如下所示:

{
    "Jan" :
    {
        "month" : "Jan",
        "amount"  : 450.00
    },
    "Feb" :
    {
        "month" : "Feb",
        "amount"  : -130.00
    }

}

如有任何帮助,我们将不胜感激。

最佳答案

const bills =  [
    {
       id: '111',
       date: '22 Jan 2020',
       amount: -250.00
   },
   {
       id: '222',
       date: '08 Jan 2020',
       amount: 700.00
   },
   {
       id: '333',
       date: '08 Feb 2020',
       amount: -250.00
   },
   {
       id: '788-609098-129169487',
       date: '08 Feb 2020',
       amount: 120.00
   }
];

const output = bills.reduce((a, {date, amount}) => {
    const month = date.slice(3, 6);

    if(!a[month]) { 
        a[month] = {"month": month, amount} 
    } else { 
        a[month].amount += amount ;
    }
    return a;
}, {});

console.log(output);

关于javascript - 从 JSON 响应创建对象并删除不需要的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61064170/

相关文章:

javascript - 如何将标签放置在其文本字段内?

javascript - 光滑的 slider 定位和宽度

json - 从 Go 中的流中打印/记录完整的非结构化 json

javascript - 如何从 React Img 组件获取值

c++ - 将可变大小数组传递给 DLL 的选项有哪些?

php - 从 mysql 查询创建 token 列表到 json

javascript - 如何在 JavaScript 中使用 find() 和 findIndex

ios - 如何将 JSON 对象插入数组?

javascript - 将 JSON(作为字符串)转换为多维数组

javascript - 获取屏幕上最明显的元素