Ruby: этот «двухмерный хеш» требует обработки - PullRequest
1 голос
/ 02 июля 2010

У меня есть это:

h = {  1 => { 1 => {:a => "x", :b => "y", :c => "z"}, 
              2 => {:a => "xx", :b => "yy", :c => "zz"}
             }, 
       2 => { 1 => {:a => "p", :b => "q", :c => "r"}, 
              2 => {:a => "pp", :b => "qq", :c => "rr"}
            }
    }

Я хочу получить это:

result = {  1 => { 1 => {:a => "x"}, 
                   2 => {:a => "xx"}
             }, 
            2 => { 1 => {:a => "p"}, 
                   2 => {:a => "pp"}
            }
    }

Что было бы неплохо для этого?

Ответы [ 2 ]

2 голосов
/ 02 июля 2010

Один пример не может действительно определить вашу структуру.Например, всегда ли хэши имеют глубину 3 уровня, а хэши должны быть удалены на уровне 3?

.

1 голос
/ 02 июля 2010

(Должен действительно быть комментарием, но код трудно читать таким образом)

Если вы удаляете из самого внутреннего хеша все ключи, кроме: a, почему бы не присвоить часть значения этого хеша непосредственно хешу, который его содержит?

result = {
  1 => { 1 => "x", 2 => "xx"}, 
  2 => { 1 => "p", 2 => "pp"}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...