Как отсортировать массив на основе его преобразования - PullRequest
0 голосов
/ 20 января 2019

Я бы хотел отсортировать массив:

initial_array = ['23', '504', '2']

на основе суммы цифр каждого элемента. Преобразованный массив:

[5, 9, 2] 

Сортировка массива по отображению:

chars.map(&:to_i).reduce(:+)

дает отсортированный преобразованный массив:

sorted_transformed_array # => [2, 5, 9]

Отсортированный начальный массив:

['2', '23', '504']

Как мне отсортировать initial_array на основе sorted_transformed_array? Есть ли способ, который делает это?

В чем отличие от метода sort_by!?

1 Ответ

0 голосов
/ 20 января 2019

Используйте это преобразование / расчет в сочетании с sort_by методом

До рубина 2,4

array.sort_by { |item| item.chars.map(&:to_i).reduce(0, :+) }

С рубином 2,4

array.sort_by { |item| item.chars.map(&:to_i).sum }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...