Ruby (Rails): remove whitespace from each array item
This is what collect
is for.
The following handles nil
elements by leaving them alone:
yourArray.collect{ |e| e ? e.strip : e }
If there are no nil
elements, you may use:
yourArray.collect(&:strip)
...which is short for:
yourArray.collect { |e| e.strip }
strip!
behaves similarly, but it converts already "stripped" strings to nil
:
[' a', ' b ', 'c ', 'd'].collect(&:strip!)=> ["a", "b", "c", nil]
If you don't mind first removing nil
elements:
YourArray.compact.collect(&:strip)
If you are using Rails, consider squish:
Returns the string, first removing all whitespace on both ends of the string, and then changing remaining consecutive whitespace groups into one space each.
yourArray.collect(&:squish)