一、问题
在编程对数据进行统计时,经常使用数组来存储数列。然后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); };</pre>
三、应用
在线应用描点器,就使用了上述方法,对给出的数据点求出了相关的统计量。