如何计算Typical Deviation?代码报错及Stack Overflow代码格式求助
问题解决:典型偏差代码修复 + Stack Overflow代码插入方法
一、典型偏差代码的错误修复
你的代码存在几个关键问题,导致无法正确计算:
覆盖传入的数组参数
函数第一行let array1 = Array(Number);直接覆盖了传入的array1参数,后续操作的是空数组,直接删掉这行即可。平均值计算错误
array1.reduce是方法引用,没有实际调用求和。正确写法是用reduce累加数组元素后除以长度:
let mean = array1.reduce((total, num) => total + num, 0) / number_of_study;
- 平方差未累加
循环里每次重新声明let numerator,且未累加每个元素的平方差。应先初始化numerator为0,再在循环中累加:
let numerator = 0; for (let i = 0; i < number_of_study; i++) { numerator += (array1[i] - mean) ** 2; }
- 函数未返回结果
最后需要添加return solution;,否则调用函数会得到undefined。
修复后的完整代码:
function typical_deviation(array1) { let number_of_study = array1.length; // 计算平均值 let mean = array1.reduce((total, num) => total + num, 0) / number_of_study; // 累加平方差 let numerator = 0; for (let i = 0; i < number_of_study; i++) { numerator += (array1[i] - mean) ** 2; } // 计算标准差并返回 let solution = Math.sqrt(numerator / number_of_study); return solution; } array2 = [2,4,5,6,2]; console.log(typical_deviation(array2)); // 输出约1.6248
二、Stack Overflow插入代码的正确方法
你遇到的Ctrl+K只显示一行的问题,大概率是没选中全部代码。正确操作方式:
- 选中所有需要插入的代码行,再按Ctrl+K,就能将选中内容全部转为代码块;
- 手动操作的话,在代码上下方各加一行英文反引号```,格式如下:
// 你的代码内容
- 单行代码直接用单个英文反引号包裹,比如
console.log('test')。
内容的提问来源于stack exchange,提问作者noobprogrammer
相关产品推荐
相关产品推荐

