Использование Array#map
, Enumerator#with_index
, Array#select
, Array#first
, Array#max
, Array#last
и Array#join
b = [2, 3, 4, 4]
b.map.with_index(1).select { |a| a.first == b.max }.map(&:last).join(", ") # => "3, 4"
# Step 1
b.map.with_index(1).to_a # => [[2, 1], [3, 2], [4, 3], [4, 4]]
# Step 2
b.map.with_index(1).select { |a| a.first == b.max } # => [[4, 3], [4, 4]]
# Step 3
b.map.with_index(1).select { |a| a.first == b.max }.map(&:last) # => [3, 4]
# Step 4
b.map.with_index(1).select { |a| a.first == b.max }.map(&:last).join(", ") # => "3, 4"
Вы можете использовать его как свой собственный метод
def max_elements_ids(ary)
ary.
map.
with_index(1).
select { |a| a.first == b.max }.
map(&:last).
join(", ")
end
puts max_elements_ids([2, 3, 4, 4]) # will print 3, 4
puts max_elements_ids([2, 4, 3, 4, 4]) # will print 2, 4, 5