有的時候為了考慮執行效率等,我們把數據處理會放在前端js中,而不選擇在SQL中執行。首先什么是標准差?干嘛的?
那如何在JS中求標准差呢?
var baseData=[0,1,2,3,4];
var avg = function (arr) { //計算平均值 函數
var len = arr.length;
var sum = 0;
for(var i = 0; i < len ; i++){
sum += arr[i]*1;
}
return sum/len;
}
var sampleAvg1 =avg(baseData).toFixed(2);
var length = baseData.length;
var temp = new Array(length); //定義一個臨時空數組,用來存儲每個數組元素與平均值的差的平方。
for (var i = 0; i < length; i++) {
var dev = parseFloat(baseData[i]) - sampleAvg1 ; //計算數組元素與平均值的差
temp[i] = Math.pow(dev, 2); //計算差的平方
}
var powSum = 0; //用來存儲差的平方總和
for (var j = 0; j < temp.length; j++) {
if (temp[j].toString() != "" || temp[j].toString() != null) {
powSum = parseFloat(powSum) + parseFloat(temp[j].toString()); //計算差的平方總和
}
}
var stddev = Math.sqrt(parseFloat(powSum) / parseFloat(length)).toFixed(2); //用差的平方總和除以數組長度即可得到標准差
alert(stddev);
結果如下: