Js localeCompare() 方法实现字符串数组排序
localeCompare()方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。
1语法:str.localeCompare(compareStr)
- 当 引用字符串 在 比较字符串 前面时返回 -1
- 当 引用字符串 在 比较字符串 后面时返回 1
- 相同位置时返回 0
1'a'.localeCompare('b')  // 返回-1
2'b'.localeCompare('a')  // 返回 1
3'a'.localeCompare('a')  // 返回 0
应用
可以结合sort()对字符串数组进行排序
排序前:[‘pear’,‘apple’,‘peach’,‘banana’]
要实现的排序效果:[‘apple’,‘banana’,‘peach’,‘pear’]
1var fruits = ['pear','apple','peach','banana']
2var afterFruits = fruits.sort((a,b) => a.localeCompare(b))
3console.log(afterFruits) // ["apple","banana","peach","pear"]
中文同样可以通过该方法去实现:
1var names = ['方回','陈一','李四','陈波','张三','陈啊']
2var afterNames = names.sort((a,b) => a.localeCompare(b))
3console.log(afterNames) // ["陈啊", "陈波", "陈一", "方回", "李四", "张三"]
对象数组实现:
1var names = [{"name":"bb","sex":"男"},{"name":"aa","sex":"男"},{"name":"cc","sex":"女"},{"name":"bb","sex":"女"}]
2var afterNames = names.sort((a,b) => (a.name+a.sex).localeCompare(b.name+b.sex))
3console.log(afterNames) // [{"name":"aa","sex":"男"},{"name":"bb","sex":"男"},{"name":"bb","sex":"女"},{"name":"cc","sex":"女"}]
 发布日期:2023-07-31 19:29 字数:77 用时
                                
                                 tags:LocaleCompare Js 
                                
                            
                        标签云
            
                alpine(1)  api网关(1)  async(1)  await(1)  centos(4)  cli(1)  client-go(1)  debug(1)  docker(10) docker-compose(1)  dockerfile(1)  embed(1)  es6(1)  etcd(1)  etcdctl(1)  freemesh(2)  git(6)  go(5) go-zeus(5)  goland(2)  golang(7)  grafana(2)  grpc(5)  grpcurl(1)  homebrew(1)  homedir(1)  http(2) hugo(1)  java(2)  javascript(3)  job(1)  js(1)  json(1)  k8s(16)  k8s部署指南(1)  kubebuilder(1) kubectl(4)  kubernetes(1)  linux(2)  localecompare(1)  lombok(1)  metrics(2)  mock(1)  mysql(1)  npm(1) nsenter(1)  nvm(1)  pnpm(2)  pprof(1)  prettier(1)  prometheus(2)  protobuf3(1)  protoc(1)  qiankun(1) request(1)  scss(1)  servicemesh(1)  spring(1)  springcloud->freemesh(1)  ssh(2)  systemctl(1)  tcpdump(1)  typescript(2) vite(2)  vscode(2)  vue(8)  vue-admin(2)  vue3(1)  webssh(1)  xtermjs(1)  xxl-job(1)  yarn(1) zookeeper(1)  云原生(4)  云原生框架(1)  介绍(1)  单体架构->freemesh(1)  单元化(1)  博客(1)  压缩(1)  可观测(1) 后台管理系统(1)  命名规范(1)  多云多活(1)  如水网(1)  安全(1)  安装(1)  容器(2)  开发联调神器(1)  微前端(1) 微服务(2)  微服务架构->freemesh(1)  微服务框架(1)  快速开始(1)  控制面(1)  数据面(1)  文集(2)  服务发现(1)  服务网格(1) 流量泳道(1)  流量管理(1)  监控告警(1)  端口映射(1)  证书(1)  负载均衡(1)  配置(1)