我在比較郵政編碼。如何比較兩個數組的內容?
我有一個郵政編碼三個常量:
ZIP_MORRIS
ZIP_UNION
ZIP_ESSEX
我想看看如果用戶在對象的數組,包含在其中的一個所有的拉鍊。
我嘗試這樣做:
ZIP_UNION.sort{|x,y| y <=> x} <=> Email.find(3).distributions.map(&:zip_code).uniq.compact.sort{|x,y| y <=> x}
但不幸的是,這只是映射所有的郵政編碼,所以如果我選擇在不同的縣一個額外的拉鍊,那就不能正確進行比較。
我認爲最好的解決辦法是比較生成拉鍊用戶的價值,看看是否所有拉鍊的一個ZIP_COUNTY存在數組裏面。
某種類型的迭代器可以運行所有的zip文件,並確保用戶的zip文件包含或不包含zip組中的每個zip文件。
任何想法?
簡單帶上蛋糕。 – Trip 2011-04-01 13:51:29
@Trip:非常簡單。在我們的應用程序中,我經常需要做一些非常類似於ID數組達到幾十萬個元素的東西。所有其他方法證明太慢。 – 2011-04-01 13:53:34
此解決方案適用於@ Trip問題中的特定示例,但不適用於一般情況。您需要執行兩次差異操作: #其中元素數量不匹配 [1] - [1,2]#=> [] [1,2] - [1]#=> [2] #哪裏有元素[1,1,2] - [2,2,1]#=> [] [2,2,1] - [1,1,2]# => [] – bobics 2012-09-25 17:56:59