angularjs - Get average from multiple JSON objects values -
i have data following data:
var v = { "2015-09-23":[ {"allconversions":"0.1","averagecpc":"0.01","averagecpm":"0.02","averageposition":"8.3",id:1}, {"allconversions":"0.0","averagecpc":"0.00","averagecpm":"0.00","averageposition":"9.0",id:1} ], "2015-09-18":[ {"allconversions":"0.1","averagecpc":"77.14","averagecpm":"239.57","averageposition":"7.7",id:1}, {"allconversions":"0.0","averagecpc":"39.97","averagecpm":"703.91","averageposition":"3.8",id:1}, {"allconversions":"0.0","averagecpc":"20.40","averagecpm":"381.36","averageposition":"4.3",id:1} ] }; var columns = [ "allconversions", "averagecpc", "averagecpm", "averageposition" ];
and want return following object sum of fields without id:
{ "2015-09-23": [ {"allconversions":"0.1","averagecpc":"0.01","averagecpm":"0.02","averageposition":"17.3",id:1} ], "2015-09-18": [ {"allconversions":"0.1","averagecpc":"137.51","averagecpm":"1324.84","averageposition":"15.8",id:1} ] }
i tried code utilising underscrore:
_.each(columns,function(item){ var out = _(groups).map(function (g, key) { return { date: key, item: _(g).reduce(function (m, x) { return m + x.item; }, 0) } }); });
but 'nan' error when running code.
check out..
<html> <head> <script> var v={ "2015-09-23":[ {"allconversions":"0.1","averagecpc":"0.01","averagecpm":"0.02","averageposition":"8.3",id:1}, {"allconversions":"0.0","averagecpc":"0.00","averagecpm":"0.00","averageposition":"9.0",id:1} ], "2015-09-18":[ {"allconversions":"0.1","averagecpc":"77.14","averagecpm":"239.57","averageposition":"7.7",id:1}, {"allconversions":"0.0","averagecpc":"39.97","averagecpm":"703.91","averageposition":"3.8",id:1}, {"allconversions":"0.0","averagecpc":"20.40","averagecpm":"381.36","averageposition":"4.3",id:1} ]}; var columns=[ "allconversions","averagecpc","averagecpm","averageposition" ]; var output = {}; var smalloutput = {}; var tempdate = []; for(var in v){ var temp = 0; for(var j = 0; j < columns.length ; j++){ for(var k = 0 ; k < v[i].length; k++) temp += parsefloat(v[i][k][columns[j]]); smalloutput[columns[j]] = temp ; temp=0; } output[[i]] = smalloutput; } console.log(output); </script> </head> <body> </body> </html>
here fiddle.. https://jsfiddle.net/4t1teyk0/
check console.
here output
Comments
Post a Comment