在本文中,我们将看到三个JavaScript MESES JavaScript以实现表格上的治疗方法。如果您对厌倦了循环,那么您的 循环,并且您喜欢 foreach ,我将向您展示替代方案< strong>©les gares 和有效 显着改善了您的代码。毫无疑问,让我们去满足JavaScript的力量护林员。
以身作则
为了简化理解,我们将以下表来说明不同的示例。
const employees: Employee[] = [
{
id: 1,
name: "Patrick",
salary: 42000,
},
{
id: 2,
name: "Berth",
salary: 44000,
},
{
id: 3,
name: "Alexandre",
salary: 38000,
},
];
1.蓝色力量:过滤器
操纵绘画时,最常见的操作之一就是过滤器。 滤波器表允许您仅保留感兴趣的元素并删除不可或缺的直立。
让我们举一个简单的例子,我们想过滤用于仅保留超过40,000的员工的表格。让我们看一下到达Sultat的两种可能的方法。
脐
NAE方法是澄清一张空拍摄的桌子。然后,我们旅行了受雇桌子的元素。每次员工尊重条件(薪水> 40,000)时,都会添加到电影雇员的桌子上。然后,我们获得了赢得40,000多人的餐桌。
const filteredEmployees: Employee[] = [];
employees.forEach((employee: Employee) => {
if (employee.salary > 40000) {
filteredEmployees.push(employee);
}
});
等效于Thoder滤波器
thode 滤波器要过滤桌子,以保持尊重条件的选举。
记录让我们成为带有过滤器的nae veave。
const filteredEmployees = employees.filter((employee: Employee) => employee.salary > 40000);
如果我们查看此更高的牧师代码,我们将thode filter 应用于所使用的表。在Thode的正文中,我们来放置条件(回调功能)。在这里,所有赚取超过40,000人的员工将保留在退货委员会中。然后,我们获得了副本 the hossed列表的过滤器。
使用过滤器允许您使用较短的代码而不会丢失 sens ,因为明确的餐点©。因此,代码更容易读取。
2.力量胭脂:地图
当前的另一个操作操作是必须在表的版本上应用处理。
让我们以以下情况为例。我们想增加2000年所有雇用的薪水
脐
NAE方法是要澄清空的更新的绘画,然后浏览工作桌子。对于每位员工,我们来制作副本并增加工资。最后,我们将更新的雇用表中使用的Lâs的修改副本放置。然后,我们到2000年获得了受雇的表格。
const updatedEmployees: Employee[] = [];
employees.forEach((employee: Employee) => {
const updatedEmployee = {
...employee,
salary: employee.salary + 2000,
};
updatedEmployees.push(updatedEmployee);
});
等效于地图地图
thode 地图允许您在每个
记录让我们成为地图地图的Nae veave。
const updatedEmployees = employees.map((employee: Employee) => {
return {
...employee,
salary: employee.salary + 2000,
};
});
如果我们看得更多,在此代码中,我们将thode 地图应用于雇主,以便在此表的所有元素上处理。该处理对应于地图正文中的回调功能。在这里,我们带一个员工,我们在他的薪水上向他增加了2000,然后将他送回。地图地图返回原点表的修改副本。
使用thode map 允许修改所有元素dâdâdâdâdâdâdâd。简洁而简单。不需要欺骗的副本,因为最后一个是由治疗结束时的thode返回的。因此,我们获得了较短的代码和更明确的,因为该处理出现在边缘的身体中。
3.强迫Jaune:减少
据说要计算绘画版本给定的一个。
让我们以以下情况为例。我们想计算所雇用的薪水总和。
脐
为此,Naãils的方法可能是澄清爱情变量。然后,有必要浏览所使用的桌子,并将爱与不同所雇用的薪水一起添加。下面的代码说明了此示例。
let amount: number = 0;
employee.forEach((employee: Employee) => {
amount += employee.salary;
});
等效于减少
thode 降低允许计算表的元素,并返回我们称为累加器的值。减少的medode会通过将表格传递到一个值来失去维度。
const amount = employees.reduce((acc, employee) => acc += employee.salary, 0);
我们将同一条玫瑰在一行中得到相同的玫瑰。如果我们查看代码,则将减少功能应用于所使用的表。因此,我们来浏览所有雇用的人。对于每个员工,我们包括Lâ累加器,这是工资之和。一旦桌子全部旅行,又返回了累加器并影响爱情。
因此,代码更简短,更 clear 和更多显式。
4.lâéééépuête:功能编程的力量
可以使用三种组合来实现复杂的治疗。
让我们以以下情况为例。员工应增加2,000欧元,然后将严格额外支出的工资总额提高到40,000。
在这里我们有三个操作:
- 到2000
- 赚取超过40,000的过滤员工
- 计算超过40,000以上工资的总和
const updatedEmployees: Employee[] = [];
// Augmenter de 2000 chaque salaire
employees.forEach((employee: Employee) => {
updatedEmployees.push({
...employee,
salary: employee.salary + 2000,
});
});
const filteredEmployees: Employee[] = [];
// Filtrer les employés qui gagnent plus de 40000
updatedEmployees.forEach((employee: Employee) => {
if (employee.salary > 40000) {
filteredEmployees.push(employee);
}
});
let amount: number = 0;
// Calculer la somme des salaires au dessus de 40000
filteredEmployees.forEach((employee: employee) => {
amount += employee.salary;
});
现在,使用 map , filter>和减少的组合与溶液进行比较。
const amount = employees.map((employee: Employee) => {
return {
...employee,
salary: employee.salary + 2000,
};
})
.filter((employee: Employee) => employee.salary > 40000)
.reduce((acc: number, employee: Employee) => acc + employee.salary, 0);
sultat,差异是无可争议的。如本示例所示,当我们使用地图,过滤和减少MetS进行更复杂的处理时,可以简化代码。我们得到了一个简洁,易于阅读和的代码,而没有模棱两可的。
。
结论
我们在本文中看到,我们可以通过使用JavaScript Medods filter>, map 和减少来显着简化生命。我们已经看到了所有示例,这些MSE在您的代码中提供了 CLARITY 和上下文。
让我们改变对程序构建的传统态度:而不是想象我们的主要任务是指导A Computer 该怎么做,而是让我们专注于向人类我们想要一台计算机做什么。 Donald Knuth
正如唐纳德·诺斯(Donald Knuth)说的那样很好,而不是对机器说我们想做的事情,让我们告诉代码向人类解释您想要机器做什么。< /p>
如果您想改善干净代码的狂暴欺骗和更凶猛减少!