Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象数组辅助_Javascript_Arrays_Object - Fatal编程技术网

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]。额定值;
而(jconsole.log(值)为什么不
1*252+2*124+…
?在代码中我该怎么做?不相关,但我根本不理解你的评级计算,除非评级颠倒。如果你有很多一颗星,平均值应该是一…?是的,你说得对,非常感谢!!!!这个算法不会给出4.11的答案