Ros*_*han 1 javascript arrays sorting
(我之前也曾问过这个问题,但已被标记为重复,但答案不符合我的要求)
我有一个数组 a=["Apple","Mango","apple","mango"].如果我使用a.sort()的结果是
["Apple", "Mango", "apple", "mango"]
但我想要的是
Apple,apple,Mango,mango
Run Code Online (Sandbox Code Playgroud)
记住它不是inSensitive排序,因为无论数组中给定元素的顺序如何,输出都应该是
苹果 苹果芒果芒果 意味着大写字母应该在较小的之前
那么你比较需要做2轮比较.
a.sort(function(e1, e2) {
var ce1 = e1.toLowerCase(), ce2 = e2.toLowerCase();
if (ce1 < ce2) return -1;
if (ce1 > ce2) return 1;
// at this point, we know that the two elements are the same
// except for letter case ...
if (e1 < e2) return -1;
if (e1 > e2) return 1;
return 0;
});
Run Code Online (Sandbox Code Playgroud)
首先,该函数在转换为小写后检查两个元素.如果在转换为小写后它们相等,则会检查原始表单.因此,"苹果"和"苹果"在第一轮比较相同,因此将进行排序,以便"Apple"排在第一位.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |