0

我有一个对象数组,我想添加另一个对象,只要该属性object.id与我在数组中拥有的任何对象的 id 都不匹配。

我知道我可以通过数组检查一买一,但是在 Ruby 中有没有更简单的方法呢?

4

2 回答 2

2
array << foo unless array.any? { |e| e.id == foo.id }

或者

array << foo unless array.map(&:id).include?(foo.id) 
于 2012-06-22T23:03:59.287 回答
1

我喜欢@Mori 的答案,但如果可能的话,您应该考虑一下哈希是否对您的问题没有意义。您是否需要根据 id 从数组中获取对象?如果是这样,您应该将其设为哈希。

然后你会做

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

于 2012-06-22T23:22:28.623 回答