gpt4 book ai didi

javascript - VueJS 按类别减少 JSON 返回数据并求和关联值

转载 作者:行者123 更新时间:2023-12-02 22:30:29 25 4
gpt4 key购买 nike

我通过 axios 来自 mongodb/nestjs API 的原始数据,格式为:

created_at: "date"
quantity: "number"
month: "string"
organization: "string"
state: "string"
category: "string"
year: "date"
_id: "numeber"

通过使用 axios 并获取数据,我可以生成可管理的输出:

        .get(`${server.baseURL}/quantity/quantities`)
.then(response => {
this.rawData = response.data
console.log(this.rawData);
this.rawDataB = this.rawData.map(( {category, quantities} ) => ({category, quantities}))
console.log(this.rawDataB)
})

rawDataB 的控制台日志生成以下输出数组:

[
{category: "string",
quantities: "number}
]

因为我有每个类别的每月数据,所以我有一个大约 100 个具有这种格式的对象的数组,每个月一个。所以我有...:

[{category: "string", quantities: "number"}]

从一月到九月的每个月。因此每个类别大约有 8-9 个与同一类别、不同月份和不同数量相关的对象。

我想将其简化为以下格式,但似乎无法弄清楚:

[
{ category: "string", quantities: "number }
]

对于每个类别——本质上是通过此外部函数删除重复的类别名称:

export function removeDuplicate (a, b) {
if (a.indexOf(b) < 0) {
a.push(b)
}
return a
}

但是当这样做时,日期键会丢失并且只为我提供数组中的数组:

[
[ "category", number],["category", number]...
]

对于每个类别。请注意,数字已更改为整数而不是字符串

关于如何实现数据格式有什么想法吗?

[
{category: "string", totalQuantity: number}
]

最佳答案

没有库...请注意 Object.values()

const rawData = [
{ category: "january", quantities: "2" },
{ category: "february", quantities: "2" },
{ category: "january", quantities: "2" },
{ category: "february", quantities: "2" },
{ category: "january", quantities: "2" },
{ category: "february", quantities: "2" },
{ category: "january", quantities: "2" },
{ category: "february", quantities: "2" }
];

const formattedData = rawData.reduce((previousValue, { category, quantities }) => {
if (!previousValue[category]) {
previousValue[category] = { category, totalQuantity: 0 };
}
previousValue[category].totalQuantity += +quantities;
return previousValue;
}, {});

console.log(Object.values(formattedData));

关于javascript - VueJS 按类别减少 JSON 返回数据并求和关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58921595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com