数组中的JavaScript求和和和平均值
作为一名javascript行乞者,我在求和和和平均数方面遇到了麻烦。我知道reduce是一个数学函数,但我不知道在这种情况下如何使用它。 因此,这是一个对象示例,我需要求和并获得以下各项的平均价格:数组中的JavaScript求和和和平均值,javascript,Javascript,作为一名javascript行乞者,我在求和和和平均数方面遇到了麻烦。我知道reduce是一个数学函数,但我不知道在这种情况下如何使用它。 因此,这是一个对象示例,我需要求和并获得以下各项的平均价格: { "id":"52838593-5263-41fa-b48b-98a824c6e4c1", "name":"Product", "info":[ {
{
"id":"52838593-5263-41fa-b48b-98a824c6e4c1",
"name":"Product",
"info":[
{
"id":"0a7e72d9-4b1d-4851-b4fc-ec2c427c79a7",
"name":"1xproduct",
"stats":{
"sales":2,
"avarage_price_per_pcs":"98.50",
"amount":"197.00"
}
},
{
"id":"48df2906-e042-4790-85b4-0a8a298c2548",
"name":"1xproduct",
"stats":{
"sales":7,
"avarage_price_per_pcs":"492.86",
"amount":"3450.00"
}
}
]
}
这是一个求和的例子,但如何求平均值呢?有没有更好的方法来总结这一点
var total = this.info.info.reduce(function (prev, cur) {
return prev + cur.stats.sales;
}, 0);
return total;
为了得到总数,你可以循环通过info数组,得到每个数组的数量,出于某种原因,你已经将其存储在一个字符串中,所以你首先要解析它,但仅此而已
function getSum()
{
var sum = 0;
for(var k = 0; k < data.info.length; k++)
{
sum += parseInt(data.info[k].amount);
}
return sum;
}
您期望的结果是什么?您尝试了什么?“我知道reduce是一个数学函数”-它不是,它是一个通过依次运行数组中每个项的函数来生成单个“东西”的函数。该函数可以做数学运算,但不一定要做。平均值是
sum/length
,可能是sum/length
,但不清楚OP是在寻找平均值、模式还是中值。不管怎样,这更像是一道数学题,而不是一道编程题,所以并不是真正的主题。
function getAvg()
{
return getSum() / data.info.length;
}