Ruby: как сделать Hash from path более устойчивым? - PullRequest
1 голос
/ 14 февраля 2012

Предполагая, что некоторые хэши в массиве имеют только путь ab или {"a"=>{"b"=>"someanswer"}}, как мне сделать приведенный ниже код достаточно надежным, чтобы отображать последний элемент без смерти?

path = ("a.b.c.d")
arrayOfHashes.collect {|hash| path.split(".").inject(hash) { |hash, key| hash[key] }}

1 Ответ

0 голосов
/ 14 февраля 2012

Технические характеристики не полны.Что-то в этом роде?

arrayOfHashes = [{"a" => {"b" => "hello"}}, {"a" => {"b" => {"c" => {"d" => "response"}}}}]
path = "a.b.c.d"
arrayOfHashes.map do |hash| 
  path.split(".").inject(hash) do |acc, key|
    acc.is_a?(Hash) ? acc[key] : acc
  end
end
#=> ["hello", "response"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...