我是瘦子

JavaScript 中文首字母排序

String

String.prototype.localeCompare()

引自MDN:localeCompare() 方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

语法

1
2
// referenceStr:引用字符串    compareString:比较字符串
referenceStr.localeCompare(compareString[, locales[, options]])

描述
返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。

  • 引用字符串比较字符串 前面时返回 -1
  • 引用字符串比较字符串 后面时返回 1
  • 相同位置时返回 0

切勿依赖于 -1 或 1 这样特定的返回值。不同浏览器之间(以及不同浏览器版本之间) 返回的正负数的值各有不同,因为W3C规范中只要求返回值是正值和负值,而没有规定具体的值。一些浏览器可能返回-2或2或其他一些负的、正的值。

示例
使用 sort()localeCompare() 进行中文数组首字母的排序

1
2
3
4
5
function compare(a, b) {
return a.localeCompare(b);
}
resultArr = [ '学习' , '钢材' , '蛋汤' , '房企', '安卓','北京', '藏宝' ] ;
resultArr.sort(compare); // ["安卓", "北京", "藏宝", "蛋汤", "房企", "钢材", "学习"]