Учитывая минимальное целое и максимальное целое, я хочу создать массив, который отсчитывает от минимума до максимума два, а затем обратно вниз (снова на два, повторяя максимальное число).
Например, если минимальное число равно 1, а максимальное - 9, я хочу [1, 3, 5, 7, 9, 9, 7, 5, 3, 1]
.
Я стараюсь быть как можно более кратким, поэтому я использую однострочные.
В Python я бы сделал это:
range(1, 10, 2) + range(9, 0, -2)
В Ruby, который я только начинаю изучать, все, что я до сих пор придумываю, это:
(1..9).inject([]) { |r, num| num%2 == 1 ? r << num : r }.reverse.inject([]) { |r, num| r.unshift(num).push(num) }
Что работает, но я знаю, что должен быть лучшим способом. Что это?