reduce方法
2个回答
展开全部
JavaScript中的reduce方法为您提供了一种简单的方法来获取值数组并将它们组合成一个值,或者根据多个类别对数组求和。
哇,一句话说得太多了,让我们一步一步来吧!
当然,你可以使用 for 循环遍历数组并对每个值执行特定操作。但是,如果你不使用 filter()、map() 和reduce() 等方法,那么你的代码将变得更加难以阅读。其他开发人员需要彻底阅读每个循环才能理解其目的,而且容易出现更多的 bug,因为你需要创建更多的变量来跟踪单个值。
Filter 方法接受初始数组中的所有元素,并且只允许某些元素进入最终数组
Map 方法在初始数组中的每个元素上运行一个函数,然后将其存储在最终数组中。
而 reduce 方法将初始数组中的元素组合成最终值或值数组。
我意识到这有点像节食。从非常简单的方法,如计算卡路里,到更复杂的饮食,如 Atkins 减肥法或称体重计(WeightWatchers),目标是将你一天中可能吃的所有食物提炼成一个(或多个)值,看看你是否在减肥的轨道上。

用 For 循环模拟Reduce
下面是使用for循环快速显示reduce()功能的方法。假设你有一个包含你一天中吃过的5种不同食物的卡路里计数的数组,你想知道你总共消耗了多少卡路里,代码如下:

这很简单,你创建一个变量来保存最终数量,然后在运行数组时添加它。但是,你仍然需要引入一个新变量,并且循环没有提供关于循环目的的线索。
一个简单的Reduce示例
让我们学习如何使用reduce()方法实现相同的目标。
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。

所以 reduce 有一些内存的概念。在遍历数组中的每一项时,sum参数将跟踪值。在前面的例子中,我们必须在循环范围之外声明一个新变量来“记住”这些值。
哇,一句话说得太多了,让我们一步一步来吧!
当然,你可以使用 for 循环遍历数组并对每个值执行特定操作。但是,如果你不使用 filter()、map() 和reduce() 等方法,那么你的代码将变得更加难以阅读。其他开发人员需要彻底阅读每个循环才能理解其目的,而且容易出现更多的 bug,因为你需要创建更多的变量来跟踪单个值。
Filter 方法接受初始数组中的所有元素,并且只允许某些元素进入最终数组
Map 方法在初始数组中的每个元素上运行一个函数,然后将其存储在最终数组中。
而 reduce 方法将初始数组中的元素组合成最终值或值数组。
我意识到这有点像节食。从非常简单的方法,如计算卡路里,到更复杂的饮食,如 Atkins 减肥法或称体重计(WeightWatchers),目标是将你一天中可能吃的所有食物提炼成一个(或多个)值,看看你是否在减肥的轨道上。

用 For 循环模拟Reduce
下面是使用for循环快速显示reduce()功能的方法。假设你有一个包含你一天中吃过的5种不同食物的卡路里计数的数组,你想知道你总共消耗了多少卡路里,代码如下:

这很简单,你创建一个变量来保存最终数量,然后在运行数组时添加它。但是,你仍然需要引入一个新变量,并且循环没有提供关于循环目的的线索。
一个简单的Reduce示例
让我们学习如何使用reduce()方法实现相同的目标。
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。

所以 reduce 有一些内存的概念。在遍历数组中的每一项时,sum参数将跟踪值。在前面的例子中,我们必须在循环范围之外声明一个新变量来“记住”这些值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询