2013-02-12 75 views
3

我有散列紅寶石收集獨特的元素

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}] 

的一些陣列如何刪除{name:"x", long:1.0, lat:2.0},這COORDS是相等的最後一個元素,其他的話我需要離開最後一個(在我的情況:與name:"z")哈希與獨特COORDS並丟棄所有以前的元素用相同的COORDS

+0

我從來沒有遇到過這樣的問題......我需要一些算法思想,我可以寫自己的ruby代碼 – 2013-02-12 11:23:05

+0

是的,請寫一些代碼。 – 2013-02-12 11:23:56

回答

7

嘗試使用Array#uniq與塊:

a.uniq { |item| [item[:lat], item[:long]] } 

返回VA該塊的顏色被用作比較唯一性的值。

目前尚不清楚爲什麼要刪除「x」而不是「z」,但您可以通過在調用uniq之前顛倒數組來設置示例數據來實現。

+0

a.reverse.uniq {| item | [item [:lat],item [:long]]} .reverse幫助了我! – 2013-02-12 11:28:27