一、前言
适用场景:
- 通讯录
- 名称排序
- 商品排序
- ...
二、中文排序
localeCompare()方法,用给定语言环境比较两个字符串,默认使用当前语言环境比较。- 'zh' 表示主语言标记,代表中文。
- 'Hans' 是脚本子标记,表示简体汉字。
- 'CN' 是区域子标记,表示中国。
let nameList = ["张三","李四","彭于晏","我"]
nameList.sort((a, b) => a.localeCompare(b, "zh-Hans-CN"));
console.log(nameList); // ['李四', '彭于晏', '我', '张三']
三、英文排序
localeCompare()方法,用给定语言环境比较两个字符串,默认使用当前语言环境比较。- 'en' 表示主语言标记,代表英文。
大小写同时存在时,小写优于大写
let nameStr = 'gtrbAvrtbBahCfgoiew'
// 转数组
let nameList = nameStr.split('')
// en为英文,a与b的顺序是按照字母表的顺序来排序的,此处可扩展数组属性
nameList.sort((a, b) => a.localeCompare(b, 'en'))
console.log(nameList);
// ['a', 'A', 'b', 'b', 'B', 'C', 'e', 'f', 'g', 'g', 'h', 'i', 'o', 'r', 'r', 't', 't', 'v', 'w']
// 转字符串
console.log(nameList.join(''));
// aAbbBCefgghiorrttvw