javascript - 如何按自定义标准对 javascript 数组进行排序?不按字母或数字排列

标签 javascript sorting

所以,我有一个很好的数组,如下所示:

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

我想从北到南排序。

我想要:

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

如何在 JavaScript 中执行此操作?

我有一个预设的国家/地区。我可以告诉 Javascript“嘿,我刚刚给你的那一系列国家?排序加拿大、美国、墨西哥、伯利兹。”

这适用于静态图形,不必是动态的,硬编码即可。

我有: my_array.sort() 但我不知道下一步该做什么。网上的所有内容似乎都按数字或字母排序。

FWIW,国家列表只是一个例子。在现实生活中,我试图对政府资金来源进行分类:州、联邦、信托基金、烟草结算。但这是一个非常抽象的问题。最好使用像国家这样具体的东西,不是吗?

最佳答案

您可以创建一个返回国家/地区纬度的函数,例如:

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

您需要弄清楚如何处理无法获取纬度的位置,是否应该将其删除或排序到一端或另一端?

关于javascript - 如何按自定义标准对 javascript 数组进行排序?不按字母或数字排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25550041/

相关文章:

asp.net - JQuery BlockUI - 如何在文件下载后解锁 UI?

javascript - 使用javascript模拟点击HTML选择选项

javascript - AngularJS 连接所有 js 文件

mysql - 始终将 NULL 排序为空字符串或 0

c++ - 如何构建 std::vector<std::string> 然后对它们进行排序?

Javascript 排序多维对象

javascript - 在对象内查找并返回元素

javascript - Angular 应用程序中的浏览器功能检测 : use service, 指令, Controller ?

C程序按字母顺序对字符串进行排序

javascript - 如何在 JavaScript 中对使用逗号分隔的数字 _and_ 符号的字符串数组进行最佳排序