gpt4 book ai didi

javascript - 按天计算分组日期的平均价格

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:57 24 4
gpt4 key购买 nike

我想弄清楚如何获得每天的平均价格。

const groupByDay = _.groupBy(nextProps.data, (date) => {
return moment.unix(date.createdAt).startOf("day").format();
});

const result = _.map(groupByDay, (group, day) => {
return {
date: day.split("T")[0],
offers: group // all offers for the day
}
});

const temp = [];
result.forEach((res) => {
res.offers.forEach((rr) => {
temp.push({date: res.date, avgPrice: rr.price});
})
});

这将返回以下 temp 数组,如下所示:

[
{
"date":"2020-01-07",
"avgPrice":334
},
{
"date":"2020-01-07",
"avgPrice":756
},
{
"date":"2020-01-02",
"avgPrice":30
}
]

但是我如何才能使其分组然后计算具有相同日期值的所有对象的平均价格?例如。 2020-01-07avgPrice 应为 545,即 ((334+756)/2)

最佳答案

您不需要创建日期价格条目数组(您只需再次将其组合在一起!),而是意识到您已经拥有一个包含日期和该日期所有价格的条目列表。您所需要做的就是,对于每个条目,将一组价格转换为一个平均价格。使用 Array#reduce 进行非常简单的操作:

//example result value for display purposes
const result = [
{ date: "2020-01-07", offers: [334, 756] },
{ date: "2020-01-02", offers: [30] }
];

//important part, should work with your result array
let temp = result.map((res) => {
return {
date: res.date,
avgPrice: res.offers.reduce((avg, price) => avg + price / res.offers.length, 0)
};
});

console.log(temp);

关于javascript - 按天计算分组日期的平均价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633017/

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