在客户端中文排序可以使用localeCompare这个方法,然而在node中该方法却只能用于排数字和英文,对中文也无计可施,没关系,我们还是有方法可以进行中文排序的。
node社区中有很多拼音库,感谢大佬们的贡献!我们选择pinyinlite.js这个相对轻量的
先安装pinyinlite.js这个模块,它可以将中文转为拼音
$ yarn add pinyinlite
如下图:

image.png
const pinyin = require('pinyinlite')
pinyin('中国')
// console => [['zhong'], ['guo']]
['中国', '美国', '日本'].sort((item1, item2) => {
let c1 = pinyin(item1).join('')
let c2 = pinyin(item2).join('')
return c1.localeCompare(c2)
})
// console => arr = ['美国', '日本', '中国']
该方法适用于中英文数字混合,对特殊符号不予处理,几乎可以应对任何场景。