Ruby 如何从散列的散列中删除重复值
我需要一个唯一的散列,其中1的值不应重复 比如说,Ruby 如何从散列的散列中删除重复值,ruby,ruby-on-rails-4,hash,Ruby,Ruby On Rails 4,Hash,我需要一个唯一的散列,其中1的值不应重复 比如说, hash= {"1"=>{"one"=>1,"two"=>2}, "2"=>{"one"=>1,"two"=>3}, "3"=>{"one"=>2,"two"=>3}, "4"=>{"one"=>1,"two"=>2}} 那么结果应该是, hash= {"1"=>{"one"=>1,"two"=>2}, "3"=>{"on
hash= {"1"=>{"one"=>1,"two"=>2},
"2"=>{"one"=>1,"two"=>3},
"3"=>{"one"=>2,"two"=>3},
"4"=>{"one"=>1,"two"=>2}}
那么结果应该是,
hash= {"1"=>{"one"=>1,"two"=>2},
"3"=>{"one"=>2,"two"=>3}}
可读一行:
hash.to_a.uniq {|(_,v)| v['one']}.to_h
# {"1"=>{"one"=>1, "two"=>2}, "3"=>{"one"=>2, "two"=>3}}
可读一行:
hash.to_a.uniq {|(_,v)| v['one']}.to_h
# {"1"=>{"one"=>1, "two"=>2}, "3"=>{"one"=>2, "two"=>3}}
对于上面的一组值,答案是确定的。但是,当我在rails中为某个哈希实现它时,我得到了以下消息:nil:nilclass的未定义方法'values'。上面的代码无法生成此错误消息。在rails中实现时会引入一些错误。看起来您忘记了从每个循环迭代返回memo。对于上面的一组值,答案是确定的。但是,当我在rails中为某个哈希实现它时,我得到了以下消息:nil:nilclass的未定义方法'values',上面的代码无法生成此错误消息。在rails中实现时会引入一些错误。看起来您忘记了从每个循环迭代返回备忘录。
hash.to_a.uniq {|(_,v)| v['one']}.to_h
# {"1"=>{"one"=>1, "two"=>2}, "3"=>{"one"=>2, "two"=>3}}