我有以下代码
animals=['lion','tiger','zebra']
animals.each{|a| puts a}
我想在这个阵列中只打印老虎,因为我写了这样的东西
animals.each{|a| if a==1 puts animals[a]}
但是为什么不行?
答案 0 :(得分:2)
你可以玩这样的可枚举:
animals.select{ |a| a == 'tiger' }.each{ |a| puts a }
答案 1 :(得分:1)
你在案件中做错了: -
animals.each{|a| if animals[a]==2 puts a}
inline if
您以错误方式提出的陈述。
#each
传递数组的元素,而不是索引。所以animals[a]
将不起作用。它会将错误抛出为no implicit conversion of String into Integer (TypeError)
。
animals=['lion','tiger','zebra']
animals.each_index{|a| puts animals[a] if animals[a] == 'tiger' }
# >> tiger
答案 2 :(得分:1)
也许你正在寻找这个
animals.each_with_index{|animal, index| puts animal if index==1}
请注意,“老虎”出现在索引1而不是2。
答案 3 :(得分:0)
你可以简单地做到这一点
animals.fetch(animals.index('tiger')) if animals.include? 'tiger'
或
animals[animals.index('tiger')] if animals.include? 'tiger'