一、问题

在编程对数据进行统计时,经常使用数组来存储数列。然后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 &lt; 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 &lt; 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);
};</pre>

三、应用

在线应用描点器,就使用了上述方法,对给出的数据点求出了相关的统计量。

描点器