Ruby:如何使来自路径的哈希更健壮?

Ruby:如何使来自路径的哈希更健壮?,ruby,string,hash,dependency-injection,Ruby,String,Hash,Dependency Injection,假设数组中的一些散列只有路径a.b或{“a”=>{“b”=>“someanswer”},如何使下面的代码足够健壮,以显示最后一个元素而不死掉 path = ("a.b.c.d") arrayOfHashes.collect {|hash| path.split(".").inject(hash) { |hash, key| hash[key] }} 规格不全。像这样的 arrayOfHashes = [{"a" => {"b" => "hello"}}, {"a" => {"

假设数组中的一些散列只有路径a.b或
{“a”=>{“b”=>“someanswer”}
,如何使下面的代码足够健壮,以显示最后一个元素而不死掉

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

规格不全。像这样的

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"]

是否要显示手头上的最后一个元素,或者尝试显示'a.b.c.d',如果无法访问,则返回
nil
?抱歉,我的意思是在所有情况下都显示最后一个元素,而不是显示nil<代码>#=>[“aa”,“响应”]