基于两个维度在javascript中对多维数组进行排序?

时间:2016-03-10 09:37:00

标签: javascript

我有一个具有数字维度和字符串维度的数组。

arr = [12, "suffix", 12, "prefix", 2, "suffix", 0, "prefix"]

我想按数字(从最小到最大)然后从A-Z(这样前缀在后缀之前)进行排序。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你可以简单地对它进行两次排序:

[12, "suffix", 12, "prefix", 2, "suffix", 0, "prefix"]
 .sort()
 .sort(function(a,b){return a-b;});
// == [0, 2, 12, 12, "prefix", "prefix", "suffix", "suffix"]

这使用内置文本排序和一个适用于数字和日期的简单数值排序。

对于更复杂的元素或庞大的集合,当执行时,自己编写自定义多标准.sort()回调可能更快/更好,根据数据和需求量身定制。