Javascript/Angularjs中的数字平均值
我有一个json响应,其中必须计算每个结果数组的“吞吐量\u kbps”的平均值,其中协议名为“TCP” 我正在为此使用Javascript/Angularjs 请参阅Javascript/Angularjs中的数字平均值,javascript,jquery,angularjs,json,Javascript,Jquery,Angularjs,Json,我有一个json响应,其中必须计算每个结果数组的“吞吐量\u kbps”的平均值,其中协议名为“TCP” 我正在为此使用Javascript/Angularjs 请参阅 Thanx提前您可以这样做: var len1 = obj['flows'].length; for (var i=0; i<len1; i++) { var tmp = obj.['flows'][i]; var len2 = tmp.['results'].length; var mean = 0;
Thanx提前您可以这样做:
var len1 = obj['flows'].length;
for (var i=0; i<len1; i++)
{
var tmp = obj.['flows'][i];
var len2 = tmp.['results'].length;
var mean = 0;
for (var j=0; j<len2; ++j)
{
var tmpResult = tmp.['results'][j];
if (tmpResult['protocol'] === 'TCP')
mean += tmpResult['throughput_kbps'];
}
console.log(mean);
}
var len1=obj['flows'].length;
对于(var i=0;i您可以这样做:
var len1 = obj['flows'].length;
for (var i=0; i<len1; i++)
{
var tmp = obj.['flows'][i];
var len2 = tmp.['results'].length;
var mean = 0;
for (var j=0; j<len2; ++j)
{
var tmpResult = tmp.['results'][j];
if (tmpResult['protocol'] === 'TCP')
mean += tmpResult['throughput_kbps'];
}
console.log(mean);
}
var len1=obj['flows'].length;
对于(var i=0;i试试这个
var sum = 0;
var count = 0;
data.flows.map(function(d){
return d.results.filter(function(res){
if(res.protocol == 'TCP'){
sum += res.throughput_kbps;
count++;
return sum;
}
})
});
var avg = sum/count;
试试这个
var sum = 0;
var count = 0;
data.flows.map(function(d){
return d.results.filter(function(res){
if(res.protocol == 'TCP'){
sum += res.throughput_kbps;
count++;
return sum;
}
})
});
var avg = sum/count;
将JSON作为参数传递给此函数。这将返回您要求的平均吞吐量
function calculateThroughput(json){
var flowsObj = json.flows;
var throughputSum = 0;
var noOfSamples = 0;
for(noOfFlows in flowsObj){
var resultObj = flowsObj[noOfFlows].results;
for(noOfResults in resultObj){
if(resultObj[noOfResults].protocol == "TCP"){
throughputSum += resultObj[noOfResults].throughput_kbps;
noOfSamples++;
}
}
}
return (throughputSum/noOfSamples);
};
希望这有帮助。将JSON作为参数传递给此函数。这将返回您要求的平均吞吐量
function calculateThroughput(json){
var flowsObj = json.flows;
var throughputSum = 0;
var noOfSamples = 0;
for(noOfFlows in flowsObj){
var resultObj = flowsObj[noOfFlows].results;
for(noOfResults in resultObj){
if(resultObj[noOfResults].protocol == "TCP"){
throughputSum += resultObj[noOfResults].throughput_kbps;
noOfSamples++;
}
}
}
return (throughputSum/noOfSamples);
};
希望这有帮助。过滤“TCP”的结果,提取该集合的吞吐量_kbps,对集合求和,除以集合的计数。您是否使用下划线?@dandavis Thanx,但是否有此示例?@DivakarDass否..仅使用Angularjsfetch("https://raw.githubusercontent.com/openstack/vmtp/master/doc/source/_static/example.json)。然后(x=>x.json())。然后(x=>x.flows.map(y=>y.results.filter(k=>k.protocol==“TCP”))。然后(r=>r.reduce((a,b=>a.concat(b))。然后(x=>x.length,x.map(y=>y.throughput\u kbps)]。然后(x=>x[0],x[1]。reduce((a,b)=>a+++a++b))。然后(r=>r[1]/r[0])。然后(警报)
过滤“TCP”的结果,提取该集合的吞吐量,求和,除以集合的计数。您是否使用下划线?@dandavis Thanx,但是否有此示例?@DivakarDass no..仅使用Angularjsfetch(“https://raw.githubusercontent.com/openstack/vmtp/master/doc/source/_static/example.json那么(x=>x.json())。然后(x=>x.flows.map(y=>y.results.filter(k=>k.protocol==“TCP”))。然后(r=>r.reduce((a,b=>a.concat(b))。然后(x=>[x.length,x.map(y=>y.throughput\u kbps)]。然后(x=>[x[0],x[1]。reduce((a,b)=>+a++b)]。然后(r=>r[1]/r[0])。然后(警报)