私はRuby 2.4を使用しています。私は私のモデルの数値属性の最大数を検索したい場合は、私がアレイ内で正確に2回発生するオブジェクトの属性の最大値を見つけるにはどうすればよいですか?
max_num = my_objects_arr.maximum(:numeric_attr)
を行うことができますが、どのように私は私の値は、配列に正確に二回発生した属性の最大数を見つけるだろうか?つまり、オブジェクト配列に3つのオブジェクトがあるとしましょう。
obj1 - numeric_attr = 3
obj2 - numeric_attr = 3
obj3 - numeric_attr = 4
正確に2回発生する上記の属性の最大値は「3」になります。 "4"はすべての属性の最大値ですが、配列内で1回だけ発生します。オブジェクトの場合
ああ、 "numeric_attr"はフィールドの名前です。だから、オブジェクトは "numeric_attr"という名前のフィールドしか持てません。それは理にかなっていますか? –
'arr.uniq.select {| e | arr.count(e)== 2} .max' –
これは最悪の場合、 'O(N²)'です。 – mudasobwa