我一般都知道如何在javascript中运行此方法,但我还不了解如何使用UNICODE命令数组...
实施例
var fruits = [
["caldera Cuicocha",1],
["Telica",2],
];
我相信订单没有改变,因为这封信" c"在字母之前" t" ...
但是
fruits.sort();
输出是这样的:
//Telica
//caldera Cuicocha
你愿意向我解释为什么这么好吗?
是否发生了unicode字符的计算?
答案 0 :(得分:3)
sort
默认比较字符串。这意味着,["caldera Cuicocha",1]
和["Telica",2]
都会先转换为字符串:"caldera Cuicocha,1"
和"Telica,2"
。将Array
转换为字符串相当于join
与,
。
现在您已经正确地注意到排序基于Unicode。大写字母来自之前小写字母,但是:
Char Hex-Code
A 41
B 42
… …
Z 5A
… …
a 61
b 62
… …
z 7A
sort
在 "caldera Cuicocha,1"
之后"Telica,2"
来按预期对数组进行排序。
答案 1 :(得分:1)
这是一个排序功能,它可以做你想要的:
function sortfunc(a, b) {
var cmpa = a[0].toLowerCase(), cmpb = b[0].toLowerCase();
return cmpa < cmpb ? -1 : cmpa > cmpb ? +1 : 0;
}
换句话说,取两个数组中每个数组的第一个元素,小写它,然后比较并返回-1,+ 1或0,这是sort
期望从其排序函数返回的内容。然后:
fruits.sort(sortfunc)