nec*_*ker 73 ruby ruby-on-rails
我有一个数组@horses = [],我填写了一些随机的马.
如何检查我的@horses阵列是否包含已包含(存在)的马?
我尝试过类似的东西:
@suggested_horses = []
@suggested_horses << Horse.find(:first,:offset=>rand(Horse.count))
while @suggested_horses.length < 8
horse = Horse.find(:first,:offset=>rand(Horse.count))
unless @suggested_horses.exists?(horse.id)
@suggested_horses<< horse
end
end
Run Code Online (Sandbox Code Playgroud)
我也试过,include?但我看到它仅用于字符串.随着exists?我得到以下错误:
undefined method `exists?' for #<Array:0xc11c0b8>
Run Code Online (Sandbox Code Playgroud)
所以问题是如何检查我的阵列是否已经包含"马",以便我不会用同一匹马填充它?
Tom*_*iło 172
Ruby中的数组没有exists?方法,但它们有一个文档中描述的include?方法.就像是
unless @suggested_horses.include?(horse)
@suggested_horses << horse
end
Run Code Online (Sandbox Code Playgroud)
应该开箱即用.
And*_*rew 14
如果要通过检查对象上的属性来检查对象是否在数组中,可以使用any?并传递一个计算结果为true或false的块:
unless @suggested_horses.any? {|h| h.id == horse.id }
@suggested_horses << horse
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147030 次 |
| 最近记录: |