JS-中文排序、英文排序(大小写可混合)

一、前言

适用场景:

  • 通讯录
  • 名称排序
  • 商品排序
  • ...

二、中文排序

  • localeCompare()方法,用给定语言环境比较两个字符串,默认使用当前语言环境比较。
  • 'zh' 表示主语言标记,代表中文。
  • 'Hans' 是脚本子标记,表示简体汉字。
  • 'CN' 是区域子标记,表示中国。
javascript 复制代码
let nameList = [
        {
            name: "张三",
            initial: "z",
        },
        {
            name: "李四",
            initial: "l",
        },
        {
            name: "彭于晏",
            initial: "p",
        },
        {
            name: "我",
            initial: "w",
        },
    ]
    // localeCompare()方法,用给定语言环境比较两个字符串,默认使用当前语言环境比较。
    // 'zh' 表示主语言标记,代表中文。
    // 'Hans' 是脚本子标记,表示简体汉字。
    // 'CN' 是区域子标记,表示中国。
    console.log(nameList);
    nameList.sort((a, b) => a.initial.localeCompare(b.initial, "zh-Hans-CN"));
    console.log(nameList); // [李》彭》我》张]  结果大概长这样。。。简单理解一下

三、英文排序

  • localeCompare()方法,用给定语言环境比较两个字符串,默认使用当前语言环境比较。
  • 'en' 表示主语言标记,代表英文。
  • 大小写同时存在时,小写优于大写
bash 复制代码
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
相关推荐
hedley(●'◡'●)24 分钟前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
qq5_81151751526 分钟前
web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
百思可瑞教育27 分钟前
构建自己的Vue UI组件库:从设计到发布
前端·javascript·vue.js·ui·百思可瑞教育·北京百思教育
百锦再27 分钟前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
CappuccinoRose1 小时前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
这儿有一堆花1 小时前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架
全栈前端老曹1 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
NCDS程序员2 小时前
v-model: /v-model/ :(v-bind)三者核心区别
前端·javascript·vue.js
夏幻灵2 小时前
CSS三大特性:层叠、继承与优先级解析
前端·css
小杨同学呀呀呀呀2 小时前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue