Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何从散列的散列中删除重复值_Ruby_Ruby On Rails 4_Hash - Fatal编程技术网

Ruby 如何从散列的散列中删除重复值

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

我需要一个唯一的散列,其中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"=>{"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}}