是否有一種清晰的方法可以遍歷下面的哈希并將特定值替換為“填充”陣列中的值?
codes = ['AA', 'BB']
fills = ['FOUR', 'FIVE']
這個空散列由“每個執行”陳述句填充,其中根據“代碼”陣列中的鍵從“main_hash”中挑選出資訊。
hash = {}
main_hash = {'AA' => ['1', 'TEXT', 'ONE'],
'BB' => ['2', 'TEXT', 'TWO'],
'CC' => ['3', 'TEXT', 'THREE']}
輸出:我想替換新“哈希”中的特定值,因此輸出如下所示:
hash = {'AA' => ['1', 'TEXT', 'FOUR'],
'BB' => ['2', 'TEXT', 'FIVE']}
uj5u.com熱心網友回復:
可能的解決方案:
# Input
fills = ['FOUR', 'FIVE', 'SIX']
hash = {
'AA' => ['1', 'ONE'],
'BB' => ['2', 'TWO'],
'CC' => ['3', 'THREE']
}
hash.transform_values { |i, _| [i, fills[i.to_i - 1]] }
# output
{
'AA' => ['1', 'FOUR'],
'BB' => ['2', 'FIVE'],
'CC' => ['3', 'SIX']
}
更新:
隨著您的傳入資料發生更改,解決方案將是:
h = {"AA"=>["1", "FOUR"], "BB"=>["2", "FIVE"]}
h.transform_values { |x| x.insert(1, 'TEXT') }
# Output
{
'AA' => ['1', 'TEXT', 'FOUR'],
'BB' => ['2', 'TEXT', 'FIVE']
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495311.html
