這個問題在這里已經有了答案: 在包含任意數量的嵌套散列和陣列的散列中查找鍵/值對 9 個答案 16 小時前關閉。
my_key有沒有辦法在不知道使用開箱紅寶石方法存盤鍵值的路徑的情況下訪問值?
您將看到下面的兩個場景將它們存盤my_key在不同的位置。這些哈希結構將始終是動態的,因此您無法預測訪問的確切路徑,my_key但密鑰名稱始終是已知的。我已經看到.dig這非常接近所需的功能,只是增加了能夠遍歷多級哈希和陣列的功能,就像通配符一樣有效。
scenario_1 = {
level_1a: {
level2: [
{
level3: {
my_key: "here"
}
}
]
},
level_1b: "test"
}
scenario_2 = {
level_1a: {
my_key: "here"
},
level_1b: "test"
}
如果不可能通過開箱即用的紅寶石;是否有任何已知的寶石可以添加此功能,或者您認為最好只實作您自己的自定義遞回深度掃描方法?
uj5u.com熱心網友回復:
dig-deep gem似乎是您正在尋找的東西:
require 'dig-deep'
scenario_1.dig_deep(:my_key)
=> "here"
scenario_2.dig_deep(:my_key)
=> "here"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478517.html
上一篇:如何在帶有ArelTable的Rails中使用distinct方法?
下一篇:在Ruby中決議時間
