相关疑难解决方法(0)

在Ruby中映射和删除nil值

我有一个地图,可以更改值或将其设置为零.然后我想从列表中删除nil条目.该列表不需要保留.

这就是我目前拥有的:

# A simple example function, which returns a value or nil
def transform(n)
  rand > 0.5 ? n * 10 : nil }
end

items.map! { |x| transform(x) } # [1, 2, 3, 4, 5] => [10, nil, 30, 40, nil]
items.reject! { |x| x.nil? } # [10, nil, 30, 40, nil] => [10, 30, 40]
Run Code Online (Sandbox Code Playgroud)

我知道我可以做一个循环并有条件地收集另一个数组,如下所示:

new_items = []
items.each do |x|
    x = transform(x)
    new_items.append(x) unless x.nil?
end
items = new_items
Run Code Online (Sandbox Code Playgroud)

但它似乎不是红宝石般的.有没有一种很好的方法可以在列表中运行一个函数来删除/排除nils?

ruby

334
推荐指数
8
解决办法
22万
查看次数

在Ruby中删除数组中的nil和空字符串

我是Ruby的新手并坚持这个问题.假设我有一个这样的数组:

arr = [1, 2, 's', nil, '', 'd']
Run Code Online (Sandbox Code Playgroud)

我想从中删除nil和空字符串,即最终数组应该是:

arr = [1, 2, 's', 'd']
Run Code Online (Sandbox Code Playgroud)

我尝试了compact但它给出了这个:

arr.compact!
arr #=> [1, 2, 's', '', 'd'] doesn't remove empty string.
Run Code Online (Sandbox Code Playgroud)

我想知道在Ruby中是否有一种聪明的方法.

ruby arrays

29
推荐指数
5
解决办法
3万
查看次数

清除数组中的空字符串

我正在处理一堆由字符串组成的数组,而且我写过很多次 .delete_if { |str| str.empty? }

现在,我知道我可以自己将这个方法添加到数组类中,但是我希望有一种内置的方法来实现这一点,而不需要在基类中添加非标准方法.与向基类添加方法一样有趣的是,出于可维护性的原因,我不想这样做.

是否有内置的方法来处理这个?

ruby arrays

10
推荐指数
3
解决办法
1万
查看次数

分割字符串时忽略空捕获

我有一个字符串:

Ayy ***lol* m8\nlol"
Run Code Online (Sandbox Code Playgroud)

我想不包括空捕获和产生:

["Ayy ", "**", "*", "lol", "*", " m8", "\n", "lol"]
Run Code Online (Sandbox Code Playgroud)

我正在通过这个正则表达式拆分字符串:

/(?x)(\*\*|\*|\n|[.])/
Run Code Online (Sandbox Code Playgroud)

这会产生:

["Ayy ", "**", "", "*", "lol", "*", " m8", "\n", "lol"]
Run Code Online (Sandbox Code Playgroud)

ruby regex

3
推荐指数
1
解决办法
168
查看次数

从数组中删除空格和空格

如何摆脱数组中的空格和空白项

names = ["alice", "", "bob", " ", "yankee"]
Run Code Online (Sandbox Code Playgroud)

想要的结果应该是

["alice", "bob", "yankee"]
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

0
推荐指数
1
解决办法
155
查看次数

标签 统计

ruby ×4

arrays ×2

regex ×1

ruby-on-rails ×1