collator 这个单词意思是排序器。Intl.Collator 对象是排序器的构造函数,可以支持对语言敏感的字符串比较。
如果项目中有个无序的人名列表需要我们按照中文的首字母拼音排序,该怎么处理?
此时,可以使用中文简体的 BCF 47 语言标记字符串 zh 进行排序,代码如下:
var usernameList = [
"井柏然",
"刘烨",
"陆毅",
"孙红雷",
"冯绍峰",
"韩庚",
"胡歌",
"黄晓明",
"贾乃亮",
"李晨",
"李易峰",
"鹿晗",
"陈坤",
"邓超",
"杜淳",
];
usernameList.sort(new Intl.Collator("zh").compare);
// 结果是:["陈坤", "邓超", "杜淳", "冯绍峰", "韩庚", "胡歌", "黄晓明", "贾乃亮", "井柏然", "李晨", "李易峰", "刘烨", "陆毅", "鹿晗", "孙红雷"]
大功告成~~