首先npm i transliteration 下载该资源
const { transliteration, slugify } = require('transliteration');
//假设现在的需求是根据中文pinyin进行排序后将数据返回页面
//从数据库查询的假数据
let testArr = [
{name:"中国",sex:"男"},
{name:"中方",sex:"男"},
{name:"日本",sex:"女"},
{name:"日光",sex:"女"},
{name:"美国",sex:"女"},
{name:"美团",sex:"女"},
{name:"法兰西",sex:"女"},
{name:"德国",sex:"女"}];
//再定义个数组和一个字段pinyin用于在转化完成后,直接对该拼音进行排序,而不是中文
let test2 = [];
//循环遍历该数组每一个下标,给每一个值都添加对应的拼音
for(let i = 0;i<testArr.length;i++){
let py = slugify(testArr[i].name);
let result = {name:testArr[i].name,pinyin:py}
test2.push(result);
}
//转换完成后,开始对该拼音进行排序
console.log(test2.sort((x,y)=>(x.pinyin.localeCompare(y.pinyin))));
0: {name: “德国”, pinyin: “de-guo”}
1: {name: “法兰西”, pinyin: “fa-lan-xi”}
2: {name: “美国”, pinyin: “mei-guo”}
3: {name: “美团”, pinyin: “mei-tuan”}
4: {name: “日本”, pinyin: “ri-ben”}
5: {name: “日光”, pinyin: “ri-guang”}
6: {name: “中方”, pinyin: “zhong-fang”}
7: {name: “中国”, pinyin: “zhong-guo”}