[1/4]与这些JavaScript一起从©©ro转到他
#javascript #网络开发人员 #编程 #法国

在本文中,我们将看到三个JavaScript MESES JavaScript以实现表格上的治疗方法。如果您对厌倦了循环,那么您的 循环,并且您喜欢 foreach ,我将向您展示替代方案< strong>©les gares 和有效 显着改善了您的代码。毫无疑问,让我们去满足JavaScript的力量护林员。

Image description

以身作则

为了简化理解,我们将以下表来说明不同的示例。

const employees: Employee[] = [
    {
        id: 1,
        name: "Patrick",
        salary: 42000,
    },
    {
        id: 2,
        name: "Berth",
        salary: 44000,
    },
    {
        id: 3,
        name: "Alexandre",
        salary: 38000,
    },
];

1.蓝色力量:过滤器

Image description

操纵绘画时,最常见的操作之一就是过滤器。 滤波器表允许您仅保留感兴趣的元素并删除不可或缺的直立。

让我们举一个简单的例子,我们想过滤用于仅保留超过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.力量胭脂:地图

Image description

当前的另一个操作操作是必须在表的版本上应用处理

让我们以以下情况为例。我们想增加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:减少

Image description

据说要计算绘画版本给定的一个。

让我们以以下情况为例。我们想计算所雇用的薪水总和。

为此,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:功能编程的力量

Image description

可以使用三种组合来实现复杂的治疗。

让我们以以下情况为例。员工应增加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>


如果您想改善干净代码的狂暴欺骗和更凶猛减少