为什么检查 hash[key] 是否设置为 true(布尔)值的 if 条件不能按预期工作?

问题描述 投票:0回答:1

我有以下名为 cars 的嵌套哈希

{:honda=>{year=>2008,is_condition_good?=>true},
 :toyota=>{year=>2010,is_condition_good?=>false}
}

我想返回满足

is_condition_good? = true
的嵌套哈希。我意识到我可以使用 select 方法
cars.select {|car, attributes| attributes[:is_condition_good?]=true}
但下面的代码似乎也应该有效,但由于某种原因,它不会进入 if 语句循环。我做错了什么?

cars.each do |car, attributes|
  if attributes[:is_condition_good?] == true then
     return attributes
  end
end

我在

attributes[:is_condition_good?]
之前打印了
cars.each do |car, attributes|
,看到它打印了
true 
false 
,而且确实如此。

ruby hash nested
1个回答
0
投票

你能试试这个吗?

cars.each do |car, attributes|
  if attributes[:is_condition_good?]
    return attributes
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.