Управление хэшем в Ruby - PullRequest
       1

Управление хэшем в Ruby

0 голосов
/ 21 марта 2011

Я должен манипулировать глубоко вложенным хешем (5 или 6 уровней) в Ruby. Например, мне нужно поменять 3-й и 4-й уровни примерно так:

a[b][c][d][e] = []

до:

a[b][d][c][e]=  []

Может кто-нибудь указать мне алгоритмы, которые помогут мне? Я не ленивый, просто в условиях ограниченного времени.

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Если я ужасно не устала, вам бы сойти с рук что-то вроде этого:

result = Hash.new
a.each do |b, ab|
    result[b] ||= Hash.new
    ab.each do |c, abc|
        abc.each do |d, abcd|
            (result[b][d] ||= Hash.new)[c] = abcd
        end
    end
end
a = result

Теперь я не говорю, что это самый эффективный способ сделать это.

0 голосов
/ 21 марта 2011

Поскольку выяснилось, что вы анализируете XML, я настоятельно рекомендую вам не использовать собственное решение. REXML - это один из вариантов синтаксического анализа XML в Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...