1

我有哈希数组[{"a" => 1, "b" => 2}, {"a"=> 3, "b" => 4}, {"a" => 5, "b" => 6}]。现在我需要比较所有的哈希值,即将第一个哈希值与第二个和第三个哈希值进行比较,将第二个哈希值与第三个哈希值进行比较。如果有人有任何想法,请告诉我!

4

3 回答 3

4

Rails 的类 Hash 带有diff返回哈希差异的方法

{"a" => 1, "b" => 2}.diff("a"=> 3, "b" => 4) # { "a" => 1, "b" => 2 }

也看看merge方法,它可能对你的情况有用

于 2011-03-24T09:01:00.200 回答
1

在你的试试这个rails console

irb(main):001:0> array = [{"a" => 1, "b" => 2}, {"a"=> 3, "b" => 4}, {"a" => 5, "b" => 6}]
irb(main):002:0> 0.upto(array.length-2) do |index|
irb(main):003:1* (index+1).upto(array.length-1) do |index2|
irb(main):004:2* puts "array[#{index}][a]-array[#{index2}][a] is : #{array[index]["a"]-array[index2]["a"]}"
irb(main):005:2> puts "array[#{index}][b]-array[#{index2}][b] is : #{array[index]["b"]-array[index2]["b"]}"
irb(main):006:2> end
irb(main):007:1> end
array[0][a]-array[1][a] is : -2
array[0][b]-array[1][b] is : -2
array[0][a]-array[2][a] is : -4
array[0][b]-array[2][b] is : -4
array[1][a]-array[2][a] is : -2
array[1][b]-array[2][b] is : -2
=> 0

这就是你可以比较它们的方式。我使用了减号 (-),您可能需要使用AND (&)然后为此您必须将“&”符号放在“-”的位置,否则您可以执行任何您想要对其执行的操作.. . :)

于 2011-03-24T08:56:32.917 回答
0

rails 有一个不错的 hash.diff 方法,可以很容易地移植到 Ruby 中

于 2012-11-23T11:15:38.737 回答