Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个对象数组,我想添加另一个对象,只要该属性object.id与我在数组中拥有的任何对象的 id 都不匹配。
object.id
我知道我可以通过数组检查一买一,但是在 Ruby 中有没有更简单的方法呢?
array << foo unless array.any? { |e| e.id == foo.id }
或者
array << foo unless array.map(&:id).include?(foo.id)
我喜欢@Mori 的答案,但如果可能的话,您应该考虑一下哈希是否对您的问题没有意义。您是否需要根据 id 从数组中获取对象?如果是这样,您应该将其设为哈希。
然后你会做
list[a.id] = a if list[a.id].nil?