sort排序字母+数字混合排序

news2024/11/26 1:30:13

使用ocaleCompare进行排序后,发现排序后的顺序是这样的(为什么会这样排序,可以自己去研究一下),但这并不是自己想要的。期望顺序:A-11,A-22,A-111,A-222
在这里插入图片描述
在网上查找了半天,终于找到了一个可以解决这个问题的代码,直接拿过来套用

 function   compare() {
      return (a, b) => {
        const aName = a.devName;
        const bName = b.devName;
        if (aName && bName) {
          const isNumber = (v) => (+v).toString() === v;
          const aPart = aName.match(/\d+|\D+/g);
          const bPart = bName.match(/\d+|\D+/g);
          let i = 0;
          const len = Math.min(aPart.length, bPart.length);
          while (i < len && aPart[i] === bPart[i]) {
            i++;
          }
          if (i === len) {
            return aPart.length - bPart.length;
          }

          if (isNumber(aPart[i]) && isNumber(bPart[i])) {
            return aPart[i] - bPart[i];
          }

          return aPart[i].localeCompare(bPart[i]);
        }
      };
    },

[{devName:'A-22'},{devName:'A-11'},{devName:'A-111'},{devName:'A-222'}].sort(compare());

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业架构LNMP学习笔记2

企业架构分布式集群最终解决方案 集群&#xff1a;多台服务器在一起做同样的事情。 分布式&#xff1a;多台服务器在一起做不同的事情。 最终架构&#xff1a;实现负载均衡LB&#xff0c;高可用HA&#xff0c;数据库主从复制M-S&#xff0c;读写分离R-W&#xff0c;缓存中间件…

火热的低代码

低代码风头正紧&#xff0c;不管你是做后端开发、还是前端设计、销售、售前&#xff0c;如果你没接触过低代码都不好意思说自己在软件领域工作&#xff0c;这篇文章从我的角度聊聊低代码是什么、以怎么样的方式开发、及低代码的未来发展趋势。 一、低代码由来 低代码并不是一项…

红石外汇|每日汇评:如非农数据疲软的情况下,黄金是否会突破1955美元的100日移动平均线?

1、金价已进入 1,950 美元下方盘整阶段&#xff0c;关注美国非农就业数据&#xff1b; 2、在关键就业数据和美国劳工节长周末之前&#xff0c;美元出现空头回补&#xff1b; 3、9月份开始&#xff0c;金价关注 100 日移动平均线 1955 美元&#xff1b; 金价交易接近一个月高点…

记一次反弹shell的操作【非常简单】

#什么是反弹shell 通常我们对一个开启了80端口的服务器进行访问时&#xff0c;就会建立起与服务器Web服务链接&#xff0c;从而获取到服务器相应的Web服务。而反弹shell是我们开启一个端口进行监听&#xff0c;转而让服务器主动反弹一个shell来连接我们的主机&#xff0c;我们再…

Python2022年06月Python二级 -- 编程题解析

题目一: 学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计&#xff0c;根据健康码的颜色分配不同的核酸检测区域: 红码:A区 橙码:B区 绿码:C区 等待核酸检测人数众多&#xff0c;但是具体检测人数未知&#xff0c;请你帮小程编写一个程序来协助医生对核酸人群进行人群…

如何创建HttpServletRequest对象

我们常用的就是在Controller层的接口入参时定义&#xff0c;这样我们就能直接用了&#xff0c;如下图&#xff1a; 但是某些情况&#xff0c;我们需要传递这个request 到各种工具类中&#xff0c;传递这个request 相对要麻烦一些&#xff0c; 我们可以不用传递&#xff0c;在…

工具类APP如何解决黏性差、停留短、打开率低等痛点?

工具产品除了需要把自己的功能做到极致之外&#xff0c;其实需要借助一些情感手段、增设一些游戏机制、输出高质量内容、搭建社区组建用户关系链等方式&#xff0c;来提高产品的用户黏性&#xff0c;衍生产品的价值链。 工具类产品由于进入门槛低&#xff0c;竞争尤为激烈&…

【UIPickerView案例03-点餐系统之随机点餐 Objective-C语言】

一、先来看看我们这个示例程序里面,随机点餐是怎么做的 1.点击:“随机点餐”按钮 大家能想到,它是怎么实现的吗 1)首先,点击”随机点餐“按钮,的时候,你要让这个pickerView,进行随机选中,那么,得监听它的点击 2)然后呢,让pickeView选中数据, 3)然后呢,把那个…

IDEA无效发行版本17

IDEA无效发行版本17 idea开发工具依赖的 jdk版本 和 项目依赖的jdk版本一定要保持 一致&#xff0c;不然会报错。 setting-->build-->compiler-》javaCompiler project->structure 这个也要保持一样。 在porm.xml文件中&#xff0c;你配置jdk版本是1.8&#xff0c;这…

【云原生】Kubernetes容器编排工具

目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署 ​2. k8s的集群架构与组件 &#xff08;1&#xff09; Kube-apiserver &#xff08;2&#xff09;Kube-controller-manager &#xff08;3&a…

怎样将几个pdf合并?

在日常工作中&#xff0c;我们经常需要处理大量的PDF文件。有时候&#xff0c;我们需要将多个PDF文件合并成一个文件&#xff0c;以便于快速传输或方便查阅。虽然PDF文件本身不能进行编辑&#xff0c;但是借助专业的PDF编辑软件&#xff0c;我们可以轻松地实现将多个PDF文件合并…

SIEM中的安全事件管理

组织经常面临意外和未知的安全威胁&#xff0c;无论威胁的级别、类型或大小如何&#xff0c;它们的存在都会对企业的整体运作产生冲击&#xff0c;事件管理是尽快识别和响应这些中断以最大程度地减少其对日常业务运营的影响的过程。 什么是安全事件 安全事件是指示对组织网络…

H.264视频编码推荐的分辨率和码率配置表

Video Encoding Settings for H.264 Excellence 针对H.264编码格式&#xff0c;根据不同分辨率&#xff0c;推荐其对应的码率配置关系如下图所示&#xff1a; 如下为上限&#xff0c;超过这个上限再增加码率基本无太大意义&#xff01;根据业务场景、帧率&#xff0c;建议码率…

Python中 re.compile 函数的使用

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 以下介绍在python的re模块中怎样应用正则表达式 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备…

概念解析 | 认知雷达:有大脑的雷达

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:认知雷达。 认知雷达:有大脑的雷达 1.背景介绍 对于传统的雷达,它们通常都是预设定参数和模式来进行工作,比如发射功率、波形、扫描模式等。然而,这种方式面临着一些挑…

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第三、四节:几何表述和形状描述

文章目录 一&#xff1a;几何描述&#xff08;1&#xff09;像素间几何关系A&#xff1a;邻接与连通B&#xff1a;距离 &#xff08;2&#xff09;像素间几何特征A&#xff1a;位置B&#xff1a;方向C&#xff1a;尺寸 &#xff08;3&#xff09;程序 二&#xff1a;形状描述&a…

MATLAB 动态图GIF

MATLAB 动态图GIF 前言一、创建动态图&#xff08;动态曲线、动态曲面&#xff09;1. 创建动画曲线&#xff08;MATLAB animatedline函数&#xff09;2. 创建动画曲面 二. 保存动态图三、完整示例1. 动态曲线&#xff08; y s i n ( x ) ysin(x) ysin(x)&#xff09;2. 动态曲…

YOLO目标检测——视觉显著性检测MSRA1000数据集下载分享

MSRA1000数据集是一个常用的视觉显著性检测数据集&#xff0c;它包含了1000张图像和对应的显著性标注。在以下几个应用场景中&#xff0c;MSRA1000数据集可以发挥重要作用&#xff1a;图像编辑和后期处理、图像检索和分类、视觉注意力模型、自动驾驶和智能交通等等 数据集点击下…

Sharding-JDBC分库分表四种分片算法

1. 精确分片算法 精确分片算法&#xff08;PreciseShardingAlgorithm&#xff09;精确分片算法&#xff08;与IN语句&#xff09;&#xff0c;用于处理使用单一键作为分片键的与IN进行分片的场景。需要配合StandardShardingStrategy使用 2. 范围分片算法 范围分片算法&#…

APP出海:如何在美国市场推广?

作为出海探宝热度最高市场&#xff0c;美国在吸引了全球全球开发者争先抢滩的同时&#xff0c;也造就了该地区高昂的买量、宣发、获客成本。 面对日渐紧迫的局势&#xff0c;中国游戏出海广告主该如何打破传统“买量”思路&#xff0c;提升在当地的品牌影响力&#xff1f; 1、…