从每个数组项rails中删除空格

时间:2010-10-13 17:12:39

标签: ruby-on-rails ruby arrays

我找到了这段代码:

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

在此网站上:http://granth.ca/2006/02/strip-whitespace

但我认为这是一个哈希,我试图对数组做同样的事情。

我尝试了一些不同的东西,但无法弄清楚。

感谢您的帮助

4 个答案:

答案 0 :(得分:64)

这是collect的用途。

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

或者(将已经“剥离”的字符串改为nil“:

yourArray.collect(&:strip)

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

答案 1 :(得分:6)

YourArray.compact.collect(&:strip) 

如果你有一些零元素。

答案 2 :(得分:2)

几乎相同,只有你将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]

字符串末尾没有空格。

答案 3 :(得分:2)

我知道这已经很晚了但是找到了这个squish的简单命令。

执行myArray.map! {|a| a.squish}将从每个数组元素中删除所有以下内容和尾随空格。