假设我有一个Ruby类,Flight
。Flight
上有一个attr_accessor :key
。如果有一个这个类的实例数组:flights = [flight1, flight2, flight3]
,我有一个“目标键”,比如"2jf345",我想要根据它的键从那个数组中找到一个航班--我应该使用哪种代码?
这是我要使用的代码:
flights[flights.map { |s| s.key }.index(target_key)]
但对于Ruby,似乎应该有一种更简单的方法。此外,上面的代码为me - `[]': no implicit conversion from nil to integer (TypeError)
返回了一个错误。我假设这意味着它根本不会返回索引。
谢谢你的帮助。
发布于 2011-11-05 08:50:10
您可以只使用find
来获取Flight对象,而不是尝试使用index
来获取索引:
flights.find {|s| s.key == target_key }
但是,您的错误消息表明index(target_key)
返回nil
,这意味着您实际上没有使用您要查找的键的航班,这意味着find
也将返回nil
。
https://stackoverflow.com/questions/8017307
复制相似问题