Javascript对象数组辅助
我正在尝试做一个评级算法。最初,这些值都是这样的:Javascript对象数组辅助,javascript,arrays,object,Javascript,Arrays,Object,我正在尝试做一个评级算法。最初,这些值都是这样的: [ { 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
[
{ 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
因此,我的问题是,采用
初始化的对象数组并计算评级的最佳方法是什么,正如我在上面用基础数学所做的那样。您可以迭代数组并收集产品和金额以获得平均值
const
数据=[{评级:1,金额:252},{评级:2,金额:124},{评级:3,金额:40},{评级:4,金额:29},{评级:5,金额:30}],
{sum,count}=data.reduce((r,{rating,amount})=>{
r、 总和+=评级*金额;
r、 计数+=金额;
返回r;
},{sum:0,count:0}),
平均数=总和/计数;
控制台日志(平均值)代码>首先,上面的计算值似乎有一些问题,应该是这样的
(5*252 + 4*124 + 3*40 + 2*29 + 1*30) / (252+124+40+29+30) = 4.13
根据您提供的阵列
const arr=[
{评级:1,金额:252},
{评级:2,金额:124},
{评级:3,金额:40},
{评级:4,金额:29},
{评级:5,金额:30},
];
常数长度=阵列长度;
风险值r、a、p、金额=0、总和=0、j=0;
对于(变量i=len-1;i>=0;i--){
r=arr[i]。额定值;
而(j console.log(值)代码>为什么不1*252+2*124+…
?在代码中我该怎么做?不相关,但我根本不理解你的评级计算,除非评级颠倒。如果你有很多一颗星,平均值应该是一…?是的,你说得对,非常感谢!!!!这个算法不会给出4.11的答案