javascript - 为什么我的函数对平均工资问题返回不正确的答案
问题描述
我对 javascript 非常陌生,并且正在解决 leetcode 中的问题。
包括的描述是:“给定一个唯一整数salary 数组,其中salary[i] 是员工i 的薪水。
返回员工的平均工资,不包括最低和最高工资。”
当我运行我的代码时,它说当传入以下数组时我的输出不正确。
[25000,48000,57000,86000,33000,10000,42000,3000,54000,29000,79000,40000]
Expected Output: 41700.00000
My Output: 41000.00000
我已经将我的代码与其他提交的代码进行了比较,据我所知,我的代码应该运行相同。这是我的代码:
function average(salary) {
var sortedSalary = salary.sort();
var total = sortedSalary.reduce((curr, acc) => {
return curr + acc
}, 0);
var result = (total - sortedSalary[0] - sortedSalary[sortedSalary.length - 1]) / (sortedSalary.length - 2);
return result;
};
console.log(average([25000,48000,57000,86000,33000,10000,42000,3000,54000,29000,79000,40000]));
感谢您对此的任何见解。
解决方案
您按字母顺序对数组进行排序,而不是按最小数字排序,因此最终删除了错误的数字。
改用sort((a, b) => a - b)
:
const salary = [25000,48000,57000,86000,33000,10000,42000,3000,54000,29000,79000,40000]
function average(salary) {
var sortedSalary = salary.sort((a, b) => a - b);
var total = sortedSalary.reduce((curr, acc) => { return curr + acc }, 0);
var result = (total - sortedSalary[0] - sortedSalary[sortedSalary.length - 1]) / (sortedSalary.length - 2);
return result;
};
console.log(average(salary))
推荐阅读
- windows - 如何在 Windows 中停止 cygwin 更新 ACL
- postgresql - 使用 JPA 标准和 JsonBinaryType 调用 jsonb_contains 函数 (postgres)
- git - Gerrit 在所有项目的提交中只触发一次
- amazon-web-services - 如何从单个 S3 存储桶提供多个静态页面?
- dependencies - 介子:如何生成“仅标头”依赖项
- flutter - Flutter 中的 main() 和 void main() 有什么区别
- flutter - 根据颤动中的条件导航到下一页
- android - 从 Firebase Firestore 检索 JSON 字符串
- java - 我们如何在 Selenium Web 驱动程序中使用预填充 cookie 来更快地运行测试
- node.js - 我的 nodejs 代码在 Google Cloud Function 上被跳过