您好,匿名用户
随意问技术百科期待您的加入

js中的 map, foreach, reduce 之间有什么区别么?

+2 投票

这三个方法都可以用来遍历数组或者对象,参数也基本相同,有什么大的区别么?

用户头像 提问 2013年 1月14日 @ Lulu 上等兵 (293 威望)
分享到:

1个回答

+1 投票
 
最佳答案

函数fmap是A到B的映射,

fmap :: A -> B

freduce是A和B到A的映射,

freduce :: A -> B -> A

feach是A到空的映射,

feach :: A -> Unit

[A]代表A类型元素的集合,那么:

map: fmap -> [A] -> [B]

即从A类型的集合映射到B类型的集合

foreach: feach -> [A] -> [Unit]

即在A类型的集合上对每一个元素做同样的操作

reduce: freduce -> A -> [B] -> A

即用一个初始值,一个reduce函数和一个B类型的集合,通过不断的“折叠”,最后得到结果,形象的讲是:
freduce(A0, B1) -> A1
freduce(A1, B2) -> A2
...

reduce也叫做fold

用户头像 回复 2013年 1月14日 @ Urgot 上等兵 (262 威望)
选中 2013年 1月14日 @Saber
提一个问题:

相关问题

0 投票
1 回复 32 阅读
用户头像 提问 2013年 9月7日 @ 卫宫士郎 上等兵 (173 威望)
0 投票
1 回复 39 阅读
0 投票
1 回复 21 阅读
用户头像 提问 2014年 1月27日 @ Kayle 上等兵 (277 威望)
+1 投票
1 回复 139 阅读
用户头像 提问 2013年 1月9日 @ 末日姐 上等兵 (172 威望)
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Shen 上等兵 (318 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...