gpt4 book ai didi

ruby-on-rails - 从散列/YAML 中删除所有空元素?

转载 作者:数据小太阳 更新时间:2023-10-29 06:17:24 24 4
gpt4 key购买 nike

我将如何从嵌套的哈希或 YAML 文件中删除所有空元素(空列表项)?

最佳答案

添加了 Rails 4.1 Hash#compactHash#compact!作为 Ruby 的 Hash 类的核心扩展。您可以像这样使用它们:

hash = { a: true, b: false, c: nil }
hash.compact
# => { a: true, b: false }
hash
# => { a: true, b: false, c: nil }
hash.compact!
# => { a: true, b: false }
hash
# => { a: true, b: false }
{ c: nil }.compact
# => {}

注意:这个实现不是递归的。出于好奇,出于性能原因,他们使用 #select 而不是 #delete_if 来实现它。参见 here for the benchmark .

如果您想将其反向移植到您的 Rails 3 应用程序:

# config/initializers/rails4_backports.rb

class Hash
# as implemented in Rails 4
# File activesupport/lib/active_support/core_ext/hash/compact.rb, line 8
def compact
self.select { |_, value| !value.nil? }
end
end

关于ruby-on-rails - 从散列/YAML 中删除所有空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3450641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com