在做项目的时候经常全有用到排序的功能,例如Mysql等数据库都带有排序的函数。
在前端开发中,Javascript的数组也带有sort函数,只是sort只对英文字母才能排序。
下面来讲一下今天的主角:localeCompare()
。
localeCompare是一个属于String类型的子函数,作用是用本地特定的顺序来比较两个字符串。
语法:
1 | referenceStr.localeCompare(compareString[, locales[, options]]); |
返回值:
如果referenceStr小于compareString则返回值小于0;
如果referenceStr大于compareString则返回值大于0;
如果referenceStr等于compareString则返回值等于0;
利用这一特性,我们可以使用Array的sort函数结合localeCompare函数来进行汉字排序。
在进行排序前,需要把排序的汉字转成单个文字的数组。
1 | var arr = ["测","试","汉","字","排","序"]; |
注意:
在用汉字进行排序的时候,得到的结果并不一定是你想要的结果。因为汉字很多,其中有一部分是多音字,例如:“长”字等。