jQuery 是否提供与 Prototype 中的“收集”和“映射”等效的迭代器函数?这些函数返回将迭代器应用于每个元素的结果:http://www.prototypejs.org/api/enumerable/collect
谢谢!
最佳答案
有一个“map()”但没有“reduce()”或“collect()”。在 jQuery 核心代码本身没有明显好处的情况下,jQuery 人员一直拒绝添加“reduce()”。
您可以从 Functional.js 中选取并扩展类似函数的简单实现。图书馆。
此外,请注意 jQuery“ map ”工具有几个有问题的功能,这些功能有时很方便,但在其他时候却很麻烦。具体来说,如您所料,传递给“map()”的回调函数返回结果数组的值。但是有两种特殊情况:
- 如果函数返回
null
或undefined
,则nothing 被添加到结果数组;换句话说,它被解释为跳过该元素的请求。这使得很难有一个包含显式null
条目的结果数组。 - 如果函数返回一个数组,则该数组被插值到结果数组中。换句话说,如果函数返回一个包含 10 个项目的数组,那么结果数组(即调用“map()”最终返回的数组)将增加 10 个新元素,而不是一个值为 10 个事物的数组的元素。
这两种食物有时都很方便,但在花了半天时间发现第二种食物后(是的,它被记录在案)我有一些痛苦的记忆:-)
关于javascript - jQuery 相当于 Prototype collect 和 map 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809499/