搜索算法不起作用

时间:2014-07-14 12:39:55

标签: ruby

我想在这个充满哈希的数组中搜索一个给定的数字:

Time_tables = [
  { name: 01251},
  { name: 05012},
  { name: 03232},
  { name: 02435},
  { name: 04545},
  { name: 03545}
]

我的预期结果是:

{name: 02435}

这是代码:

def finding_numbers(tables, train_number)
  tables.each do |i|
    if i[:name] == train_number
      p i
    end
  end
end

finding_numbers(Time_tables, 02435)

如果我运行此代码,我会得到这个:

{:name=>1309}

此数字甚至不在数组中。发生了什么事?

1 个答案:

答案 0 :(得分:4)

在ruby中,以0开头的数字文字被读作八进制表示:

puts 02435
# => 1309

所以实际上你的代码运行正常:它找到了正确的元素,它只是十进制数字,而不是八进制