2014-08-28 23 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

相关问题