Javascript jQuery相当于原型收集和映射函数?
jQuery是否提供了一个等价的迭代器函数来“收集”和“映射”原型?这些函数返回对每个元素应用迭代器的结果: 谢谢 有一个“map()”但没有“reduce()”或“collect()”。jQuery人员有相当长的历史,在jQuery核心代码本身没有明显好处的情况下,他们拒绝添加“reduce()” 您可以从库中获取和扩展类似函数的简单实现 另外,请注意jQuery“map”工具有几个有问题的特性,这些特性有时很方便,但有时会带来严重的麻烦。具体地说,传入“map()”的回调函数将返回结果数组的值,正如您所期望的那样。但有两种特殊情况:Javascript jQuery相当于原型收集和映射函数?,javascript,jquery,arrays,prototypejs,Javascript,Jquery,Arrays,Prototypejs,jQuery是否提供了一个等价的迭代器函数来“收集”和“映射”原型?这些函数返回对每个元素应用迭代器的结果: 谢谢 有一个“map()”但没有“reduce()”或“collect()”。jQuery人员有相当长的历史,在jQuery核心代码本身没有明显好处的情况下,他们拒绝添加“reduce()” 您可以从库中获取和扩展类似函数的简单实现 另外,请注意jQuery“map”工具有几个有问题的特性,这些特性有时很方便,但有时会带来严重的麻烦。具体地说,传入“map()”的回调函数将返回结果数组的
null
或undefined
,则不向结果数组添加任何内容;换句话说,它被解释为跳过该元素的请求。这使得结果数组很难显式地包含null
条目这两种食物有时都很方便,但在花了半天时间发现第二种之后(是的,有文档记录),我有一些痛苦的记忆:-)jQuery的等价物是
.map()
()
因此,如果原型中有:
['Hitch', "Hiker's", 'Guide', 'To', 'The', 'Galaxy'].collect(function(s) {
return s.charAt(0).toUpperCase();
}).join(''); // -> 'HHGTTG'
只需将collect
替换为map
(或者如果已经在使用map
,则无需更改任何内容!):
这也应该作为一个平滑的过渡,从你描述的算法,听起来很像我所知道的平面地图,这也是同样的地图后平坦。
['Hitch', "Hiker's", 'Guide', 'To', 'The', 'Galaxy'].map(function(s) {
return s.charAt(0).toUpperCase();
}).join(''); // -> 'HHGTTG'