#ruby
#ruby
Вопрос:
массив = [13845, 23424, 89021, 83628]
Как бы я вернул 2 последних числа каждого элемента?
ожидаемый результат: 45 24 21 28
Я пробовал array[i].to_s.last(2), но я получил сообщение об ошибке: «неопределенный метод `last’ для «13845»:String»
Ответ №1:
Просто используйте array.map
в Ruby. String::last
не является стандартным Ruby и частью Rails ActiveSupport.
array.map { |e| e % 100 }
Комментарии:
1. Не работает с отрицательными числами. Может
abs
быть первым.
Ответ №2:
array.map { |i| i.to_s[-2..-1] }
сделает это в Ruby, отличном от Rails, но обработка элементов в виде чисел в CherryDT более чистая.
РЕДАКТИРОВАТЬ: Похоже, что ответ CherryDT был удален, но Армин Примади делает то же самое, и это лучший ответ. Я предлагаю это только из-за вашей попытки использовать .to_s
.