gpt4 book ai didi

基于对象属性定位的 Ruby 数组方法?

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:26 26 4
gpt4 key购买 nike

假设我有一个 Ruby 类,FlightFlight 上有一个 attr_accessor :key。如果有一个此类的实例数组:flights = [flight1, flight2, flight3],我有一个“目标键”,比如说“2jf345”,我想根据它找到一个航类键,来自该数组 - 我应该使用哪种代码?

这是我要使用的代码:

航类[flights.map { |s| s.key }.index(target_key)]

但是对于 Ruby,似乎应该有更简单的方法。此外,上面的代码为我返回了一个错误 - `[]': no implicit conversion from nil to integer (TypeError)。我认为这意味着它根本不返回索引。

感谢您的帮助。

最佳答案

您可以只使用 find 来获取 Flight 对象,而不是尝试使用 index 来获取索引:

flights.find {|s| s.key == target_key }

但是您的错误消息表明 index(target_key) 返回 nil,这意味着您实际上并没有使用您要查找的 key 的航类,这意味着 find 也将返回 nil

关于基于对象属性定位的 Ruby 数组方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8017307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com