Я использую Ruby 2.4. У меня есть массив строк - они могут принимать любую форму. Я хочу применить к ним функцию «to_i», но только если строка состоит только из чисел. Я попробовал этотКак преобразовать каждый элемент массива строк в число, подлежащее определенным условиям?
data.map(&:to_i)
, но это превращает такие вещи, как [ «6M»] на [ «6»], который я «не хочу (я хочу, чтобы это было [„0“], так как есть„M“ там). Затем я попробовал
data.select{|string| string.to_i.to_s == string ? string.to_i : -2 }
но это тоже ничего не делает. Как преобразовать строки в целые числа при определенных условиях?
Как небольшое изменение, как насчет 'data.map {| s | s.match? (/ \ D /)? 0: s.to_i} '? –
@ sagarpandya82 негативы – mudasobwa