function cycleAdd(rets, ar) { var ret = rets; for(var i=0;iret.last) ret.last = ar[i].last; ret.number+=ar[i].number; for(var index in ar[i].countries) { if(index in ret.countries) ret.countries[index]+=ar[i].countries[index]; else ret.countries[index]= ar[i].countries[index]; } for(var index in ar[i].namefags) { if(index in ret.namefags) ret.namefags[index]+=ar[i].namefags[index]; else ret.namefags[index]= ar[i].namefags[index]; } ret.threads+=ar[i].threads; ret.comments+=ar[i].comments; ret.subjects+=ar[i].subjects; ret.images+=ar[i].images; ret.names+=ar[i].names; ret.trips+=ar[i].trips; ret.nametrips+=ar[i].nametrips; ret.ids+=ar[i].ids; } return ret; } function acc(a, m, n) { return ((a*n)+m)/(n+1); } function cycleAcc(rets, ar, n) { var ret = rets; for(var i in ar) { if(ar[i].last>ret.last) ret.last = ar[i].last; ret.number= acc(ret.number, ar[i].number, n); /*for(var index in ar[i].countries) { if(index in ret.countries) ret.countries[index]= acc(ret.countries[index], ar[i].countries[index], n); else ret.countries[index]= acc(0, ar[i].countries[index], n); }*/ //TODO: Implement this & names? ret.threads= acc(ret.threads, ar[i].threads, n); ret.comments = acc(ret.comments, ar[i].comments, n); ret.subjects = acc(ret.subjects, ar[i].subjects, n); ret.images = acc(ret.images, ar[i].images, n); ret.names = acc(ret.names, ar[i].names, n); ret.trips = acc(ret.trips, ar[i].trips, n); ret.nametrips = acc(ret.nametrips, ar[i].nametrips, n); ret.ids = acc(ret.ids, ar[i].ids, n); n+=1; } return ret; } if(typeof module !== 'undefined') { module.exports.cycleAdd = cycleAdd; module.exports.cycleAcc = cycleAcc; }