удалить пробелы из каждого рельса элемента массива - PullRequest
29 голосов
/ 13 октября 2010

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

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

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

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

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

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

Ответы [ 4 ]

66 голосов
/ 13 октября 2010

Это то, для чего collect.

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

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

yourArray.collect(&:strip)

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

6 голосов
/ 23 июля 2011
YourArray.compact.collect(&:strip) 

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

3 голосов
/ 28 сентября 2016

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

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

2 голосов
/ 13 октября 2010

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

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

edit
Пример

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

Вывод:

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

Больше нет пробелов в строке.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...