- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
今天你将学习如何使用**最强大的** JavaScript 函数。
数组归
“Array.reduce是最强大的 JavaScript Function. 时期。 ”
reduce 有什么作用?为何如此强大?
这是 reduce 的技术定义
Array.prototype.reduce()
reduce() 方法对数组的每个元素执行(您提供的)reducer 函数,从而产生单
个输出值。
如果你问我的话,这没什么帮助,所以让我们边做边学
1. 求所有数字的总和(使用 reduce)
[3, 2.1, 5, 8].reduce((total, number) = total + number, 0)// loop 1:
0 + 3// loop 2: 3 + 2.1// loop 3: 5.1 + 5// loop 4: 10.1 + 8//
returns 18.1
2. 求所有相乘数的总和
[3, 2.1, 5, 8].reduce((total, number) = total * number, 1)
如图所示,将数组中的所有数字相加或相乘非常容易。但是, -我说过,
reduce 是所有 JS 中最强大的函数。
假设我们有 3、4、10 和 60。假设我们想要获得一些值。
或者,更具体地说,我们想要 filter 这些值,并且只返回小于 10 的值。
通常,我们可以简单地使用该 filter 函数,只返回小于 10 的数字。
3. 使用 reduce 进行 Array.Filter
[3, 4, 10, 60].filter(number = number 10)
好吧,使用 reduce——我们可以做同样的事情。
[3, 4, 10, 60].reduce((list, number) =
number 10
? [...list, number]
: list, [])
拉拉,我们用 reduce 替换了过滤器 - 很酷,但说实话。这仍然不能证明
reduce 它是所有 JavaScript 中最强大的功能。
如果我告诉你,我们可以继续沿着这条路走,并使用 reduce 替换 JavaScript
中的几乎所有数组函数,会怎么样?
4. 重新创建 Array.some 使用 Array.reduce
[3, 4, 10, 50].some(number = number 50)// returns true (We have
some numbers in the array are less than 50)
使用 reduce,我们只需将初始值设置为 false。如果条件已经为真,那么我们
返回该条件。如果条件尚不成立,那么我们检查当前数字是否满足我们的条
件。
[3, 4, 10, 50].reduce((condition, number) =
condition === true
? condition
: number 50, false)
请注意,这次我们以 bool (false) 作为初始值,而不是使用数字或数组。
我们现在已经求和、相乘、过滤并重新创建了一些(也称为使用 reduce 有条
件地检查数组上的某些内容)。
我们还可以继续 Array.every 使用 using 替换该函数,但由于这与替换
usingArray.reduce 类似,因此我们也可以轻松地做到这一点。
Array.someArray.reduce
5.Array.join4.使用 怎么样 Array.reduce?
替换Array.join 为 Array.reduce
[truck, car, people].join(-)// truck-car-people
使用 Array.reduce 我们可以编写以下代码
[truck, car, people].reduce((text, word) = `${text}-${word}`,
)// -truck-car-people
请注意,输出的前面有一个破折号。
作为函数的第一个参数接受的回调函数 Array.reduce 接受更多参数。我们可以
使用第三个接受的参数来跟踪我们 index 的 reduce 函数
[truck, car, people].reduce((text, word, index) =
index === 0
? word
: `${text}-${word}`, )// truck-
原创力文档


文档评论(0)