Как сортировать массив по длине строк?

Пользователь

от angelica.glover , в категории: Ruby , 3 месяца назад

Как сортировать массив по длине строк?

1
2
words = ["cat", "elephant", "dog"]
words.sort_by { |word| word.length }


Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jazmyne , 3 месяца назад

@angelica.glover 

Чтобы отсортировать массив строк по их длине в языке программирования Ruby, вы можете использовать метод sort_by, как вы уже начали делать в вашем примере. Вот как это можно сделать:

1
2
words = ["cat", "elephant", "dog"]
sorted_words = words.sort_by { |word| word.length }


В результате выполнения данного кода массив words будет отсортирован по длине строк, и переменная sorted_words будет содержать этот отсортированный массив:

1
["cat", "dog", "elephant"]


Если вы хотите, чтобы сортировка была в порядке убывания длины строк, вы можете использовать метод sort_by с блоком, который возьмет отрицательную длину строки:

1
sorted_words_desc = words.sort_by { |word| -word.length }


Это отсортирует массив words в порядке уменьшения длины строк:

1
["elephant", "cat", "dog"]