【发布时间】:2020-01-20 21:50:34
【问题描述】:
如何从数组中删除空哈希?
[{}, {}, :one, :two]
.compact 似乎不起作用。
【问题讨论】:
-
[{}, {}, :one, :two] - [{}]是答案中未提及的另一种方式。
标签: ruby-on-rails ruby ruby-on-rails-5
如何从数组中删除空哈希?
[{}, {}, :one, :two]
.compact 似乎不起作用。
【问题讨论】:
[{}, {}, :one, :two] - [{}] 是答案中未提及的另一种方式。
标签: ruby-on-rails ruby ruby-on-rails-5
如何从数组中删除空哈希?
使用reject,通过检查元素是否为哈希且为空来拒绝可枚举中的元素({}):
p [{}, {}, :one, :two, [], [], '', nil].reject { |e| e == {} }
# [:one, :two, [], [], "", nil]
【讨论】:
select,直到我看到你的答案。我觉得 reject 比 select 在块中有否定条件时更具可读性。
删除空哈希:
ar = [{}, {}, :one, :two]
ar.delete({})
p ar # => [:one, :two]
【讨论】:
试试Array#reject不需要的元素:
ary = [{}, {}, :one, :two]
ary.reject! { |h| h.empty? }
ary
#=> [:one, :two]
【讨论】: