object.id
オブジェクトの配列があり、属性が配列内のオブジェクトの ID のいずれとも一致しない場合にのみ、別のオブジェクトを追加したいと考えています。
配列を調べて 1 つ購入することを確認できることはわかっていますが、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?