reductio
Version:
Reductio: Crossfilter groupings
33 lines (32 loc) • 613 B
JavaScript
var avg = {
add: function (a, prior, path) {
return function (p, v, nf) {
if(prior) prior(p, v, nf);
if(path(p).count > 0) {
path(p).avg = path(p).sum / path(p).count;
} else {
path(p).avg = 0;
}
return p;
};
},
remove: function (a, prior, path) {
return function (p, v, nf) {
if(prior) prior(p, v, nf);
if(path(p).count > 0) {
path(p).avg = path(p).sum / path(p).count;
} else {
path(p).avg = 0;
}
return p;
};
},
initial: function (prior, path) {
return function (p) {
p = prior(p);
path(p).avg = 0;
return p;
};
}
};
export default avg;