2014-08-28 18 views
0

所以,我已經有了一個很好的陣列,像這樣:如何按自定義條件對javascript數組進行排序?不按字母或數字

["Mexico", "Belize", "Canada", "US"] 

我想北至南排序。

我想:

["Canada", "US", "Mexico", "Belize"] 

如何做到這一點在JavaScript?

我有一個預設的國家。我可以告訴Javascript「嘿,我剛給你的那些國家呢?加拿大,美國,墨西哥,伯利茲。」

這是一個靜態圖形,不一定是動態的,硬編碼OK。

我得到了: my_array.sort()但我不知道下一步該怎麼做。網上的一切似乎都按數字或字母排序。

而FWIW,國家名單只是一個例子。在現實生活中,我試圖對政府資金來源進行分類:州,聯邦,信託基金,菸草結算。但這是一個非常抽象的問題。更好地使用具體的國家,不是嗎?

+1

您首先需要通過您創建的列表或使用Google地圖等服務找出各國的緯度。你寧願去哪個方向?你有一個國家的預設,或可以添加新的? – blex 2014-08-28 13:32:37

+0

你需要首先給JavaScript一些關於精確到多遠的東西的想法;或者創建某種形式的能夠自己查找信息的人工智能。 – 2014-08-28 13:32:46

+2

JavaScript在世界上如何知道?你有查找位置表嗎? – epascarello 2014-08-28 13:32:50

回答

2

您可以創建一個返回一個國家像緯度的函數:

function getLatitude(country) { 
    var countries = { 
    Belize : 17.0667, 
    Canada : 45.4, 
    Mexico : 19, 
    US : 38.8833 // Should this be America? 
    } 
    return countries[country]; 
} 

但是你需要制定出緯度,也許就是它的重心?也許它來自提供位置緯度的服務?

然後對它們進行排序:

["Mexico", "Belize", "Canada", "US"].sort(function(a, b) { 
    return getLatitude(a) - getLatitude(b); 
}); 
// ["Belize", "Mexico", "US", "Canada"] 

你需要制定出如何處理,你不能得到一個緯度位置的,他們應該被刪除或排序一端或其他?

+0

好吧,所以它似乎我不能提供一個自定義的字符串列表。我需要添加一些標記,一些數字標記來排序。這很簡單。謝謝! – Maggie 2014-08-28 13:45:33

+0

您可以找到一項服務,例如[*世界地圖*](http://www.mapsofworld.com/lat_long/belize-lat-long.html)。 – RobG 2014-08-28 13:47:38

相關問題