给JavaScript的Array类添加几个统计方法

一、问题

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

三、应用

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

描点器

Add comment

Loading