【问题标题】:How to save the values in diged keys of a hash如何将值保存在哈希的挖掘键中
【发布时间】:2018-08-27 10:58:33
【问题描述】:

我有一个哈希:

a = {b: {c: {d: e}}}

如何从a 中保存d?我应该这样写:

x = [:b][:c]
a(x) = "foo"

a 输出{b:{c:"foo"}}

【问题讨论】:

  • 你想得到任何哈希的键,如果是,那么你可以做keys = a[:b][:c].keys 如果不是,你需要让你的问题更清楚你在找什么对于
  • 您在寻找Hash#diga.dig(:b, :c) 还是a.dig(*[:b, :c])
  • 请注意 dig 来自 Ruby 2.3。因此,如果您使用低于 2.3 的任何版本,那么这将不起作用。

标签: ruby hash


【解决方案1】:

正如 mu 在 cmets 中指出的那样,您可能想要使用 dig

a = {b: {c: {d: :e}}}
keys = [:b, :c] 
d_and_e = a.dig(*keys)

这将返回{d: :e}

【讨论】:

    【解决方案2】:
    a[:b][:c].keys.first # => :d
    a[:b][:c].keys.first.to_s # => "d"
    

    【讨论】:

      【解决方案3】:

      hash.keys.join 或 hash.keys(如果只有一个键)

      【讨论】:

      • 我不知道这是在说什么
      猜你喜欢
      • 2012-04-20
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2012-02-01
      • 2012-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多