0

object.idオブジェクトの配列があり、属性が配列内のオブジェクトの ID のいずれとも一致しない場合にのみ、別のオブジェクトを追加したいと考えています。

配列を調べて 1 つ購入することを確認できることはわかっていますが、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 に答える