红宝石收集独特的元素

Vya*_*nov 4 ruby hash

我有一些哈希

a = [{name:"x", long:1.0, lat:2.0}, 
     {name:"y", long:2.0, lat:3.0}, 
     {name:"z", long:1.0, lat:2.0}]
Run Code Online (Sandbox Code Playgroud)

如何删除{name:"x", long:1.0, lat:2.0},哪些coords等于最后一个元素,其他单词我需要留下最后(在我的情况下:with name:"z")哈希与唯一的coords并删除所有以前的元素与相同的coords

Jim*_*dra 9

尝试使用Array#uniq块:

a.uniq { |item| [item[:lat], item[:long]] }
Run Code Online (Sandbox Code Playgroud)

块的返回值用作比较唯一性的值.

目前尚不清楚为什么要删除"x"而不是"z",但是你可以通过在调用uniq它之前反转数组来实现示例数据集.