当前位置:网站首页>行政路线编码 字母+数字的排序方式
行政路线编码 字母+数字的排序方式
2022-06-30 03:00:00 【不知言】
第一种:
// lxbm: G1,G4,SL3596,H89...
const array = []
array.map(item => {
const tmpArr = item.lxbm.split('')
const reg = /[a-z,A-Z]/g
item.sortLetter = '' // 字母转数字后的结果
item.sortNum = '' // 纯数字的结果
tmpArr.map(it => {
if (reg.test(it)) {
item.sortLetter += it.charCodeAt(0).toString() // 字母转换成数字
} else {
item.sortNum += it.toString()
}
})
return item
})
// sort排序
array.sort((a, b) => {
return this.sortLxbm(a, b)
})
// 排序规则
sortLxbm(a, b) {
// 字母一样时,按路线数字编号排序
if (Number(a.sortLetter) === Number(b.sortLetter)) {
return Number(a.sortNum) - Number(b.sortNum)
}
// 按字母排序
return Number(a.sortLetter) - Number(b.sortLetter)
}
第二种:
// lxbm: G1,G4,SL3596,H89...
// lxmc:京哈,京广,京藏...
const array = []
const nameArr = []
array.map(item => {
item.lxmcn = item.lxbm + '-' + item.lxmc
nameArr.push(item.lxmcn)
return item
})
nameArr.sort() // 用拼接好的名称直接sort排序,sort会自动处理字母和数字的顺序(或许最终结果不是你想要的,这时就需要自己定制化调整逻辑了...)
// 然后结果数组按特定的名称数组进行排序,参考如下:
/** * 数组按特定顺序排序 * 比如:已有数组按以下顺序排列:风雪、雨露、雷霆、暴雨、风沙、飞雾 * 核心就是利用自由的sort方法 * @param now 当前需要排序的数组 * @param mirror 指定的排序规则 */
let now = ['雨露','白霜','飞雾','暴雨','风雪','雷霆','风沙'];
let mirror = ['风雪','雨露','雷霆','暴雨','风沙','飞雾'];
let val = now.sort(function(a, b) {
// 对应不上的排到后面
if (mirror.indexOf(a) == -1 || mirror.indexOf(b) == -1) {
return mirror.indexOf(b) - mirror.indexOf(a);
} else {
return mirror.indexOf(a) - mirror.indexOf(b);
}
})
边栏推荐
猜你喜欢

How to use vant to realize data paging and drop-down loading

Summary of knowledge points about eigenvalues and eigenvectors of matrices in Chapter 5 of Linear Algebra (Jeff's self perception)

福利抽奖 | 开源企业级监控Zabbix6.0都有哪些亮点

可视化HTA窗体设计器-HtaMaker 界面介绍及使用方法,下载 | HTA VBS可视化脚本编写

Visual HTA form designer htamaker interface introduction and usage, Download | HTA VBS visual script writing

How to set password complexity and timeout exit function in Oracle

Prompt learning a blood case caused by a space

Série de tutoriels cmake - 02 - génération de binaires à l'aide du Code cmake

【直播笔记0629】 并发编程二:锁

如何在 JupyterLab 中把 ipykernel 切换到不同的 conda 虚拟环境?
随机推荐
What are the three paradigms of database
SQLite使用
mysql 主从数据库同步失败的原因
迅為恩智浦iTOP-IMX6開發平臺
JMeter obtains cookies across thread groups or JMeter thread groups share cookies
福利抽奖 | 开源企业级监控Zabbix6.0都有哪些亮点
O & M (20) make and start USB flash disk and install win10
Lua Basics
CMake教程系列-01-最小配置示例
The rigorous judgment of ID number is accurate to the last place in the team
Raki's notes on reading paper: neighborhood matching network for entity alignment
CMake教程系列-04-编译相关函数
Customize the buttons of jvxetable and the usage of $set under notes
怎样的外汇交易平台是有监管的,是安全的?
Note the use of export/import and class inheritance in ES6
CMake教程系列-02-使用cmake代碼生成二進制
Raii memory management
Jvxetable增加自定义按钮
HTA入门基础教程 | VBS脚本的GUI界面 HTA简明教程 ,附带完整历程及界面美化
Functions in C language