javascript - Javascript 对象数组辅助
问题描述
我正在尝试做一个评级算法。最初的值都是这样的:
[
{ rating: 1, amount: 252 },
{ rating: 2, amount: 124 },
{ rating: 3, amount: 40 },
{ rating: 4, amount: 29 },
{ rating: 5, amount: 30 },
];
rating
例如,价值在哪里,amount
是留下 4 星评级的人数
我想要做的是获取这些值并计算以下内容以获得评级
(5*252 + 4*124 + 3*40 + 2*29 + 1*33) / (252+124+40+29+33) = 4.11
所以我的问题是什么是获取initialized
对象数组并计算评级的最佳方法,就像我在上面用基本数学所做的那样。
解决方案
您可以迭代数组并收集产品和数量以获得平均值。
const
data = [{ rating: 1, amount: 252 }, { rating: 2, amount: 124 }, { rating: 3, amount: 40 }, { rating: 4, amount: 29 }, { rating: 5, amount: 30 }],
{ sum, count } = data.reduce((r, { rating, amount }) => {
r.sum += rating * amount;
r.count += amount;
return r;
}, { sum: 0, count: 0 }),
average = sum /count;
console.log(average);
推荐阅读
- jira - Jira - 预计工单完成日期报告
- algorithm - 将 n 人分成 m 组 k 次,重叠最小
- cygwin - Cygwin xclip 在没有 cygXmu-6.dll 的情况下失败
- r - R中的SVM预测
- javascript - 在过滤器javascript中使用额外的变量进行排序
- angular - Angular 2+ append class in directive
- javascript - How to handle input from child to parent in React
- android - How to delete markers on map from JSON data?
- ios - 在 UIPageViewController 中嵌入 UIScrollView 并禁用 pageView 滑动?
- c++ - C++ 静态数组包装器