Objective-C 中 JS 的 `map()` 函数的等价物是什么?
JS 的 map()
函数在 Objective-C 中的等价物是什么?我会只使用 NSFastEnumeration 并自己应用该函数吗?
What's the Objective-C equivalent of JS's map()
function? Would I just use NSFastEnumeration and apply the function myself?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 NSArray 的
enumerateObjectsUsingBlock:
如果您使用的是 OS X 10.6 或 iOS 4.:(无耻但相关插件:我有一个适用于 OS X 和 iOS 的 library ,它向
NSArray 添加了地图和其他类似功能
和NSSet
。)You can use
NSArray
'senumerateObjectsUsingBlock:
if you're on OS X 10.6 or iOS 4.:(Shameless but relevant plug: I have a library for OS X and iOS that adds map and other similar functionality to
NSArray
andNSSet
.)这取决于。比如说,如果您有一个对象数组,并且这些对象具有
URL
属性(例如),那么您可以这样做:同样,如果您可以通过对于采用 0 或 1 个参数的单个消息,您可以执行以下操作:
对于除此之外的任何内容,您必须自己迭代对象。您可以使用
for()
循环、for(in)
循环或类似-enumerateObjectsUsingBlock:
等。It depends. If you have, say, an array of objects, and these objects have a
URL
property (for example), then you can do:Likewise, if you can trigger the behavior of the objects in question via a single message that takes 0 or 1 parameters, you can do:
For anything beyond that, you'll have to iterate over the objects yourself. You can use a
for()
loop, afor(in)
loop, or something like-enumerateObjectsUsingBlock:
, etc.你自己做吧。没有一种方法可以满足您的需求。
编辑:对于那些投反对票的人,这是当时(三年前)的正确答案,并且仍然适用于 Objective-C,但 Swift 确实有一个
map()
函数。You do it yourself. There is no single method equivalent to what you want.
Edit: For those downvoting, this was the correct answer at the time (three years ago) and still is for Objective-C, but Swift does have a
map()
function.查看BlocksKit,它为NSArray提供了map、reduce和filer。
Check BlocksKit, it provides map, reduce and filer for NSArray.
NSArray 的替代类别函数
NSMutableArray 的替代类别函数
Category function for NSArray an alternative
Category function for NSMutableArray an alternative