javascript - Math.floor 不适用于 cartian 测试用例
问题描述
我正在做一个编码挑战,要求我找到整数数组元素的四舍五入平均值。挑战有 3 个测试用例,其中 2 个通过,除了最后一个没有通过,我不知道为什么。这是我的代码:
function getAverage(marks){
//TODO : calculate the downwar rounded average of the marks array
return Math.floor(marks.reduce((acc, cur) => {
return acc + cur;
})) / marks.length;
}
这些是测试用例:
Test.assertEquals(getAverage([2,2,2,2]),2);
Test.assertEquals(getAverage([1,2,3,4,5,]),3);
Test.assertEquals(getAverage([1,1,1,1,1,1,1,2]),1);
最后一个测试用例返回 1.125 而不是 1,即使我将结果四舍五入。这可能是什么原因?
解决方案
你的括号是错误的。您将应用于Math.floor()
总和,而不是将其应用于商。
前两个测试用例通过了,因为平均值已经是一个整数,所以不管你是否设置它都无关紧要。
考虑以下之间的区别:
floor(1 + 1 + 1 + 1 + 1 + 1 + 1 + 2) / 8 = floor(9) / 8 = 9 / 8 = 1.125
和:
floor((1 + 1 + 1 + 1 + 1 + 1 + 1 + 2) / 8) = floor(9 / 8) = floor(1.125) = 1
推荐阅读
- javascript - 更改为 JavaScript 中的时间戳格式
- python - 带有 __getattr__ 的可链接动态方法?
- python - 基于 QRunnable 的 PyQt 多线程程序无法正常工作
- html - 是否可以使用 CSS 网格使我的图像响应?
- listview - 条件 ListView.builder
- mysql - docker-compose drupal mysql SQLSTATE[HY000] [2002] 没有这样的文件或目录
- python - PyInstaller 不读取库
- javascript - 将 openstreetmap 与 Bike 层一起使用
- r - 使用 plotly 在日期轴中为周末设置不同的背景颜色
- ruby-on-rails - Rails:未定义的局部变量或方法与 Country-State-Select gem