Ответ 1
Это для collect
.
yourArray.collect{|x| x.strip || x }
в качестве альтернативы (изменит уже "разделенные" строки на nil ":
yourArray.collect(&:strip)
Я нашел этот код:
.each_key {|a| self[a].strip! if self[a].respond_to? :strip! }
на этом веб-сайте: http://granth.ca/2006/02/strip-whitespace
но я предполагаю, что это для хэша, я пытаюсь сделать то же самое с массивом.
Я пробовал несколько разных вещей, но не могу понять.
Спасибо за любую помощь
Это для collect
.
yourArray.collect{|x| x.strip || x }
в качестве альтернативы (изменит уже "разделенные" строки на nil ":
yourArray.collect(&:strip)
YourArray.compact.collect(&:strip)
Если у вас есть элемент с nil.
Я знаю, что это поздно, но нашел легкую команду для этого squish.
Выполнение myArray.map! {|a| a.squish}
приведет к удалению всех следующих и завершающих пробелов из каждого элемента массива.
Практически то же самое, только вы меняете 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]
Нет пробелов на концах строк.