我是新手。如果问题很简单,请原谅。我有两个哈希值hash1和hash2。两者具有相同的键。我需要并排显示两个哈希值,并用不同的颜色突出显示哈希值之间的差异。
Rails具有Hash#diff:
http://apidock.com/rails/Hash/diff
{1 => 2}.diff(1 => 2) # => {}
{1 => 2}.diff(1 => 3) # => {1 => 2}
{}.diff(1 => 2) # => {1 => 2}
{1 => 2, 3 => 4}.diff(1 => 2) # => {3 => 4}
Run Code Online (Sandbox Code Playgroud)
编辑: 但是,这已在Rails 4.1中删除。为了在更现代的项目中获得相同的结果,可以使用此方法,该方法是从上面得出的。
def hash_diff(first, second)
first.
dup.
delete_if { |k, v| second[k] == v }.
merge!(second.dup.delete_if { |k, v| first.has_key?(k) })
end
hash_diff({1 => 2}, {1 => 2}) # => {}
hash_diff({1 => 2}, {1 => 3}) # => {1 => 2}
hash_diff({}, {1 => 2}) # => {1 => 2}
hash_diff({1 => 2, 3 => 4}, {1 => 2}) # => {3 => 4}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1677 次 |
| 最近记录: |