按照中文拼音首字母排序

1
2
['张三','李四','王五'].sort((a, b) => a.localeCompare(b, 'zh-Hans-CN', {sensitivity: 'accent'}))
// 输出 ["李四", "王五", "张三"]

localeCompare

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

referenceStr.localeCompare(compareString[, locales[, options]])

compareString: 用来比较的字符串

locales: 可选。 用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。 locales参数的一般形式与解释, 详情请参考 Intl page

具体内容: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

语种名称代码: http://www.ruanyifeng.com/blog/2008/02/codes_for_language_names.html

浏览器支持

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
locales and options arguments 24 29 (29) 11 15 未实现