在node中,中文转拼音排序

46 篇文章 0 订阅
30 篇文章 0 订阅

首先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”}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值