У меня есть хэш:Сортировка Руби Hash по заказу в массиве ключей
sample = { bar: 200, foo: 100, baz: 100 }
Как сортировать sample
используя порядок ключей в sort_order
:
sort_order = [:foo, :bar, :baz, :qux, :quux]
Ожидаемый результат:
sample #=> { foo: 100, bar: 200, baz: 100 }
Все, что я могу найти, это
new_hash = {}
sort_order.each{|k| new_hash[k] = sample[k] unless sample[k].nil? }
sample = new_hash
Должен быть лучший способ. Советы?
Ключи без значения не должны присутствовать, то есть количество ключей остаются теми же, что не в случае с Sort Hash Keys based on order of same keys in array
Что вам нужно лучше? Более короткие? Лучшая производительность? – Anand
1. Короче 2. Лучшая производительность В таком порядке – absessive
@Amit Как это отличается от моего решения? – absessive