Подтвердить что ты не робот

Удалять пробелы из рельсов элементов массива

Я нашел этот код:

.each_key {|a| self[a].strip! if self[a].respond_to? :strip! }

на этом веб-сайте: http://granth.ca/2006/02/strip-whitespace

но я предполагаю, что это для хэша, я пытаюсь сделать то же самое с массивом.

Я пробовал несколько разных вещей, но не могу понять.

Спасибо за любую помощь

4b9b3361

Ответ 1

Это для collect.

yourArray.collect{|x| x.strip || x }

в качестве альтернативы (изменит уже "разделенные" строки на nil ":

yourArray.collect(&:strip)

http://apidock.com/ruby/Array/collect

Ответ 2

YourArray.compact.collect(&:strip) 

Если у вас есть элемент с nil.

Ответ 3

Я знаю, что это поздно, но нашел легкую команду для этого squish.

Выполнение myArray.map! {|a| a.squish} приведет к удалению всех следующих и завершающих пробелов из каждого элемента массива.

Ответ 4

Практически то же самое, только вы меняете each_key на метод обработки каждого элемента массива (each) и self[a] до a (так как вам больше не нужно искать хеш).

.each {|a| a.strip! if a.respond_to? :strip! }

изменить
Пример

x = [" 1  ", "b", " c ", 5]
x.each {|a| a.strip! if a.respond_to? :strip! }
puts x.inspect

Вывод:

["1", "b", "c", 5]

Нет пробелов на концах строк.