def valueize(val)
# randomly returns nil or random integer ([-100 to +100] + val)
((rand(100) % 3) == 0) ? nil : (rand(200)-100+val)
end
hash = {
x: 11,
y: 22,
z: 33
}
sort_by_abs = hash.sort_by{ |k, v| (valueize(v)).abs }
sort_by_min = hash.sort_by{ |k, v| (valueize(v)) }
sort_by_max = hash.sort_by{ |k, v| -(valueize(v)) }
3つの並べ替えのそれぞれについて、nilの結果が常に一番下に並べ替えられるようにするための最も厄介な方法は何ですか?
条件:
- 潜在的なハッシュ値の範囲は不明です(ハッシュ値は常に整数になります)
- valueizeメソッドは変更できません
- ソートブロックは変更できます