Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
带reduce函数的JavaScript总和和百分比_Javascript - Fatal编程技术网

带reduce函数的JavaScript总和和百分比

带reduce函数的JavaScript总和和百分比,javascript,Javascript,我是javascript新手,我有数组对象,,它有键total,failure,有相应的整数值。我想添加所有数组对象的总数,还想从总和值中得出总失败百分比 使用javascript reduce函数,我可以添加所有数组对象的总数,但无法获得失败百分比与总和值之和。请在这里提出宝贵意见 下面是我的代码: var data = [ {"total":728, "failure": 76}, {"total":708, "failure": 56}, {"total":435, "failure"

我是javascript新手,我有数组对象,,它有键total,failure,有相应的整数值。我想添加所有数组对象的总数,还想从总和值中得出总失败百分比

使用javascript reduce函数,我可以添加所有数组对象的总数,但无法获得失败百分比与总和值之和。请在这里提出宝贵意见

下面是我的代码:

var data = [
{"total":728, "failure": 76}, 
{"total":708, "failure": 56}, 
{"total":435, "failure": 36}, 
{"total":324, "failure": 93},
{"total":649, "failure": 65}
]

var r = data.reduce((a, b) => ({total: a.total + b.total}));
console.log(r)

在这里使用reduce函数,我可以添加total并获取计数,现在我需要使用reduce函数将失败百分比添加到total count中。请建议这里有一种使用解构语法的非常快速和简洁的方法:

const data=[{total:728,failure:76},{total:708,failure:56},{total:435,failure:36},{total:324,failure:93},{total:649,failure:65}];
const[总计,失败]=data.reduce(
([总数,失败],d)=>[
总计+d总计,
失败
],
[0, 0]
);

console.log(总计,故障/总计*100)
如果
故障
是一个百分比,您需要注意如何累积该数字。您应该首先将该百分比转换为绝对故障计数,相加,然后再转换回百分比:

var数据=[
{“总数”:728,“失败”:76},
{“总数”:708,“失败”:56},
{“总计”:435,“失败”:36},
{“总计”:324,“失败”:93},
{“总计”:649,“失败”:65}
];
const res=数据减少((acc,b)=>({
总计:附件总计+b总计,
失败计数:acc.failureCount+数学四舍五入(b.总计*b.失败/100)
}),{total:0,failureCount:0});
res.failure=数学轮(res.failureCount/res.total*100);

console.log(res)
添加失败的方法与添加总数的方法相同,然后计算失败之前的失败次数。失败已经以百分比表示了吗?可能的重复是预期结果的11.46%?…听起来很低me@briosheje我将这个问题解释为将
故障
表示为一个计数,而不是数据数组中的百分比,wh我看这些值似乎一直都是
总数的1/10左右。我确实感到困惑,因为看起来值已经用百分比表示了,但实际上没有提到。如果是这样,只要除以
数据。长度
,如果我没有错的话,就足够了,因为不需要计算任何百分比whatsoever@briosheje仅除以
data.length
,是不够的,因为百分比在总和中具有不同的权重,因为每个百分比的
总计数不相同。因此,这称为加权平均值。