RosettaCodeData/Task/Cumulative-standard-deviation/JavaScript/cumulative-standard-deviati...

23 lines
487 B
JavaScript

(function (xs) {
return xs.reduce(function (a, x, i) {
var n = i + 1,
sum_ = a.sum + x,
squaresSum_ = a.squaresSum + (x * x);
return {
sum: sum_,
squaresSum: squaresSum_,
stages: a.stages.concat(
Math.sqrt((squaresSum_ / n) - Math.pow((sum_ / n), 2))
)
};
}, {
sum: 0,
squaresSum: 0,
stages: []
}).stages
})([2, 4, 4, 4, 5, 5, 7, 9]);