一、问题
在编程对数据进行统计时,经常使用数组来存储数列。然后JavaScript的Array类,几乎没有相关的方法(除了.length得到数列的容量外)。
前面给JavaScript的Array对象添加了两个最大最小值方法,今天再给扩充一下,添加求和、平方和、平均值、偏差平方和、样本标准差、总体标准差这几个方法。
二、源码
Array.prototype.sum = function() {
var s = 0;
for(var i = 0; i < this.length; i++) {
s += this[i];
}
return s;
};
Array.prototype.squareSum = function() {
var s = 0;
for(var i = 0; i < this.length; i++) {
s += Math.pow(this[i], 2);
}
return s;
};
Array.prototype.average = function() {
return this.sum() / this.length;
};
//
// 偏差平方和
//
Array.prototype.squareSumOfErrors = function() {
var s = 0;
var avg = this.average();
for(var i = 0; i < this.length; i++) {
s += Math.pow(this[i] - avg, 2);
}
return s;
};
//
// 样本标准差
//
Array.prototype.sampleStandardDeviation = function() {
return Math.sqrt(this.squareSumOfErrors() / (this.length - 1));
};
//
// 总体标准差
//
Array.prototype.populationStandardDeviation = function () {
return Math.sqrt(this.squareSumOfErrors() / this.length);
};
三、应用
在线应用描点器,就使用了上述方法,对给出的数据点求出了相关的统计量。