zoukankan      html  css  js  c++  java
  • 前端 中文排序

    1. 浏览器的js实现中文排序

      参照地址: https://blog.csdn.net/qq_29819449/article/details/80520590

    2. 浏览器的js实现方式的缺点

      2.1 can i use 网站 目前浏览器对js中文排序方法的支持也不是太好:https://caniuse.com/#search=localecompare

      2.2 js实现方式不适用于nodejs 参照网址:https://segmentfault.com/q/1010000011936161

        浏览器能正确排序是因为 chrome 对 localeCompare 方法的locales做了支持使其能按指定地区对字符串进行排序。然而 node 并没有做支持~

    3. nodejs实现中文排序(建议此方案)

      参照地址:https://www.jianshu.com/p/54580701256a

    -----------------------------------------------------------------------

    浏览器 js 实现方式:

    let array = ['武汉', '北京', '上海', '天津'];
    array.sort(
        function compareFunction(param1, param2) {
            //console.log("param1",param2)
            return param1.localeCompare(param2, 'zh-Hans-CN', {sensitivity: 'accent'});
        }
    );
    //console.log("arr",array)
    let arrdata = e.data;//此处主要是针对json数据中某一个字段进行排序
    arrdata.sort(
        function compareFunction(param1, param2) {
    
            return param1.nickname.localeCompare(param2.nickname, 'zh-Hans-CN', {sensitivity: 'accent'});
        }
    )

    nodejs实现方式

    先安装pinyinlite.js这个模块,它可以将中文转为拼音

    npm i pinyinlite

    (pinyinlite库的说明:https://www.npmjs.com/package/pinyinlite)

    const pinyin = require('pinyinlite')
    
    pinyin('中国')
    // console => [['zhong'], ['guo']]
    
    ['中国', '美国', '日本'].sort((item1, item2) => {
        let c1 = pinyin(item1).join(',')//加,分割,排序更准备 比如 河北 河南 黑龙江 he,bei  he,nan  hei,long,jiang
        let c2 = pinyin(item2).join(',')
        return c1.localeCompare(c2)
    })
    // console => arr = ['美国', '日本', '中国']

    pinyinlite:

    最快 ⚡️ 而又轻量的 JavaScript 拼音库,适合在前后端实现拼音输入匹配。

    • 内存占用最小(~ 2 MB)且最快(~ 10,000,000 字/s)的 JavaScript 拼音库。
    • 字典包含约 2.7 万简体繁体字,覆盖全面(常用汉字不到五千个)。
    • 体积小,gzip 后约 80 KB。
    • 另提供基于【现代汉语通用字表(2013)】的常用字版,包含约 8000 个汉字,gzip 后 25 KB。
    • 支持多音字。
    • 没有任何依赖项。
  • 相关阅读:
    EXCEL创建批量的测试数据(sql insert语句为例)-CONCATENATE函数
    MySQL- exists的用法介绍(返回值True或False)-not exists反过来查询的应用
    MySql 中 case when then else end 的用法
    MySQL-FIND_IN_SET()函数
    MySQL函数-GROUP_CONCAT
    机器学习实战笔记-K近邻算法3(手写识别系统)
    机器学习实战笔记-K近邻算法2(改进约会网站的配对效果)
    机器学习实战笔记-K近邻算法1(分类动作片与爱情片)
    easyUi可编辑表格
    Chrome+ss FQ配置
  • 原文地址:https://www.cnblogs.com/jcz1206/p/10435850.html
Copyright © 2011-2022 走看看