Ruby: разделите один хеш на два на основе желаемых ключей

Весь штраф, кроме путаницы не действительно подобен шифрованию - иногда это даже не включает шифры, столь же простые как ROT13.

22
задан Matchu 10 July 2009 в 17:30
поделиться

2 ответа

Попробуйте активную поддержку с Hash # slice и / или Hash #, кроме . Также существуют методы взрыва:

$ irb
>> require 'active_support/core_ext'
=> true

>> hash = {:a => 1, :b => 2, :c => 3, :d => 4}
=> {:a=>1, :d=>4, :b=>2, :c=>3}
>> keyset = [:a, :c]
=> [:a, :c]

>> remainders = hash.slice!(*keyset)
=> {:d=>4, :b=>2}

>> remainders
=> {:d=>4, :b=>2}
>> hash
=> {:a=>1, :c=>3}
33
ответ дан 29 November 2019 в 03:53
поделиться
new_hash = {}
keyset.each {|i| new_hash[i] = hash.delete(i)}

Мне показалось, что это сработало, без дополнительных требований

12
ответ дан 29 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: