如何将两个散列合并为具有相同键的新散列


old_payment_schedule = {"0"=>2083333.3333333335, "1"=>2083333.3333333335, "2"=>2083333.3333333335, "3"=>2083333.3333333335, "4"=>2083333.3333333335, "5"=>2083333.3333333335}
remeasurement_schedule = {"0"=>2291666.6666666665, "1"=>2291666.6666666665, "2"=>2291666.6666666665, "3"=>2291666.6666666665, "4"=>2291666.6666666665, "5"=>2291666.6666666665}
final_result = {"0"=>2083333.3333333335, "1"=>2083333.3333333335, "2"=>2083333.3333333335, "3"=>2083333.3333333335, "4"=>2083333.3333333335, "5"=>2083333.3333333335,"6"=>2291666.6666666665, "7"=>2291666.6666666665, "8"=>2291666.6666666665, "9"=>2291666.6666666665, "10"=>2291666.6666666665, "11"=>2291666.6666666665}

嗨,大家好,我需要在一个新的哈希中组合两个具有相同键和不同值的哈希,有人可以解释我如何做到这一点,而不是合并,因为它会从一个哈希中删除值,我需要一些我在final_result变量中显示的东西。谢谢。

您可以使用Array#zipHash::[]来生成所需的散列。

values = old_payment_schedule.values + remeasurement_schedule.values
keys = (0...arr.length)
final_result = Hash[keys.zip(values)]
#=> {0=>2083333.3333333335, 1=>2083333.3333333335, 2=>2083333.3333333335, 3=>2083333.3333333335, 4=>2083333.3333333335, 5=>2083333.3333333335, 6=>2291666.6666666665, 7=>2291666.6666666665, 8=>2291666.6666666665, 9=>2291666.6666666665, 10=>2291666.6666666665, 11=>2291666.6666666665}

顺便说一句,如果哈希键将是数组索引,您可能需要考虑使用数组。

最新更新