【发布时间】:2017-06-30 16:36:02
【问题描述】:
我使用的是 Ruby 2.4。如果我想找到我的模型的数字属性的最大数量,我可以这样做
max_num = my_objects_arr.maximum(:numeric_attr)
但是我如何找到其值在我的数组中恰好出现两次的属性的最大数量?也就是说,假设我的对象数组有三个对象
obj1 - numeric_attr = 3
obj2 - numeric_attr = 3
obj3 - numeric_attr = 4
上面恰好出现两次的属性的最大值为“3”。虽然“4”是所有属性中的最大值,但它在数组中只出现一次。
【问题讨论】:
-
哦,“numeric_attr”是字段的名称。所以一个对象只能有一个名为“numeric_attr”的字段。这有意义吗?
-
arr.uniq.select { |e| arr.count(e) == 2 }.max -
@iceツ 这是
O(N²)在最坏的情况下。
标签: ruby-on-rails arrays ruby attributes max