Как отсортировать массив, используя только первые 5 символов строки в Ruby? - PullRequest
0 голосов
/ 13 февраля 2019

Итак, скажем, у меня есть массив строк, например: ["74712 Don", "48342 Cindy", "50912 Nick"], и я хочу отсортировать их по номеру перед именем.Как бы отсортировать только первые 5 символов каждого элемента (при этом оценивая их как числа)?Спасибо

1 Ответ

0 голосов
/ 13 февраля 2019

Предполагая, что вы хотите сортировать по старшим цифрам строк, вы можете сделать следующее:

["74712 Don", "48342 Cindy", "50912 Nick"].sort_by(&:to_i)
  #=> ["48342 Cindy", "50912 Nick", "74712 Don"]

Это работает, потому что String # to_i игнорирует "посторонние символы после концадействительного числа ".

Если некоторые элементы массива могут иметь более пяти начальных цифр, но должны рассматриваться только первые пять, можно использовать

 ["74712 Don", "48342 Cindy", "209124  Nick"].sort_by {  |s|
   s[0,5].to_i }
  #=> ["209124  Nick", "48342 Cindy", "74712 Don"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...