仅当object.id不';无法在Ruby中匹配数组中的任何ID

仅当object.id不';无法在Ruby中匹配数组中的任何ID,ruby,arrays,Ruby,Arrays,我有一个对象数组,如果属性object.id与数组中对象的任何id都不匹配,我想添加另一个对象 我知道我可以检查数组并检查one buy one,但是在Ruby中有没有更简单的方法呢?arrayarray我喜欢@Mori的答案,但是如果可能的话,你应该考虑一下散列在你的问题中是否更有意义。是否需要根据id从数组中提取objectss?如果是这样的话,你应该把它做成散列 array << foo unless array.any? { |e| e.id == foo.id } 然后你

我有一个对象数组,如果属性
object.id
与数组中对象的任何id都不匹配,我想添加另一个对象


我知道我可以检查数组并检查one buy one,但是在Ruby中有没有更简单的方法呢?

array
array我喜欢@Mori的答案,但是如果可能的话,你应该考虑一下散列在你的问题中是否更有意义。是否需要根据id从数组中提取objectss?如果是这样的话,你应该把它做成散列

array << foo unless array.any? { |e| e.id == foo.id }
然后你就会这么做


list[a.id]=if-list[a.id].nil?

我喜欢@Mori的答案,但如果可能的话,你应该考虑散列在你的问题中是否更有意义。是否需要根据id从数组中提取objectss?如果是这样的话,你应该把它做成散列

然后你就会这么做


list[a.id]=if列表[a.id].nil?

很好,但最好使用
object\u id
。覆盖
id
的对象数量可能很大,甚至可能会被弃用。很好,但最好使用
object\u id
。覆盖
id
的对象数量可能很大,甚至可能会被弃用。+1。我最近使用了这种方法-但我使用的语言没有
include?
(我在编写脚本)。+1。我最近使用了这种方法——但我使用的语言没有
include?
(我正在编写一个脚本)。
array << foo unless array.map(&:id).include?(foo.id)