基于二维对javascript中的多维数组排序?

基于二维对javascript中的多维数组排序?,javascript,Javascript,我有一个数组,它有一个数字维度和一个字符串维度 arr = [12, "suffix", 12, "prefix", 2, "suffix", 0, "prefix"] 我想按数字(从最小到最大)排序,然后从A-Z排序(这样前缀在后缀之前) 我该怎么做 您只需将其排序两次: [12, "suffix", 12, "prefix", 2, "suffix", 0, "prefix"] .sort() .sort(function(a,b){return a-b;}); // == [0, 2

我有一个数组,它有一个数字维度和一个字符串维度

arr = [12, "suffix", 12, "prefix", 2, "suffix", 0, "prefix"]
我想按数字(从最小到最大)排序,然后从A-Z排序(这样前缀在后缀之前)


我该怎么做

您只需将其排序两次:

[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()
回调可能更快/更好,可以根据数据和需要进行定制。

这不是“多维的”,我不知道预期的结果应该是什么。“我有一个数组,它有一个数字维度和一个字符串维度”-不,你没有。你有一个由交替的字符串和数字组成的平面数组。你可能应该有一个对象数组,每个对象都有两个属性。