【发布时间】:2021-06-20 04:59:59
【问题描述】:
目前正在学习 JS ES6+ 语法,正在做一个关于开发人员平均工资与非开发人员平均工资的练习。该代码正在运行,但据我了解,干净的代码具有一个仅执行 1 个任务的函数。目前,averagePay 有 3 个任务。
有没有办法使用箭头方法将这 3 个任务作为未命名的函数输入到 averagePay 中,将它们全部包裹在一个 averagePay 中。我不希望在外面创建太多的功能。
如果我使用了错误的术语或造成更多的混乱,我们深表歉意。 我仍在学习高阶函数,并试图将我的头脑围绕在函数内函数内的多层函数上。
感谢您的热心帮助。
const datasetEmployee = [
{
name: 'Person1',
job: 'developer',
salary: 1000
},
{
name: 'Person2',
job: 'developer',
salary: 2000
},
{
name: 'Person3',
job: 'Job3',
salary: 3000
}
];
const averagePay = (dataFiltered) => {
const filteredSalary = dataFiltered.map( (each) => each.salary);
const sumSalary = filteredSalary.reduce((acc,curr) => acc+curr, 0);
return sumSalary/filteredSalary.length;
}
const isDev = datasetEmployee.filter( (each) => each.job === 'developer');
const isNotDev = datasetEmployee.filter( (each) => each.job !== 'developer');
console.log(averagePay(isDev));
console.log(averagePay(isNotDev));
强文本
【问题讨论】:
-
我觉得很合理
-
请注意,有关改进工作代码的问题应在Code Review 提出。
-
感谢大家的热心和快速帮助。还将注意在 Code Review 上发布未来的工作代码。
标签: javascript coding-style higher-order-functions