ruby-on-rails - 在 Ruby 中搜索项目的对象数组

标签 ruby-on-rails arrays ruby

我正在尝试在对象数组中搜索一个值,但无法使 find_index 正常工作。在下面的代码中,我试图在数组中搜索名称 (joseph)。这是最好的方法吗?我想在搜索并找到它后返回该对象。

name = "joseph"

array = [{"login":"joseph","id":4,"url":"localhost/joe","description":null},
{"login":"billy","id":10,"url":"localhost/billy","description":null}]

arrayItem = array.find_index {|item| item.login == name}

puts arrayItem

最佳答案

您的数组包含一个散列,其键是符号(在散列中,key: value:key => value 的简写)。因此,您需要将 item.login 替换为 item[:login]:

name = "joseph"

array = [{"login":"joseph","id":4,"url":"localhost/joe","description":nil},
{"login":"billy","id":10,"url":"localhost/billy","description":nil}]

arrayIndex = array.find_index{ |item| item[:login] == name }

puts arrayIndex

上面的代码检索查找对象在数组中的索引。如果您想要对象而不是索引,请使用 find 而不是 find_index:

arrayItem = array.find{ |item| item[:login] == name }

另请注意,在 Ruby 中,null 实际上称为 nil

关于ruby-on-rails - 在 Ruby 中搜索项目的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378613/

相关文章:

ruby-on-rails - 升级到 Rails 4 后出现 DelayedJob 错误:Delayed::DeserializationError: Job failed to load

python - 无法理解 numpy argpartition 输出

java - 尝试对字符串数组进行排序时插入排序崩溃

javascript - JavaScript 数据可以附加到 HTML 元素吗?

ruby - Date::today 未定义?

ruby-on-rails - 使用 I18n 覆盖模型属性名称 - 无法使其正常工作

ruby-on-rails - Rails fields_for 表单未显示

ruby-on-rails - Rails 句柄连接表 UniqueViolation

ruby - Merb 的文档真的像看起来那么糟糕吗?

ruby - 从散列键转移值