sort自定义排序字符串('1-1','2-1','3-2'此类)
对数组排序
['2-3','2-1','1-4','3-2','1-1','2-2','3-1']
直接使用原生sort

对对象排序
[{a:'2-3'},{a:'2-1'},{a:'1-4'},{a:'3-2'},{a:'1-1'},{a:'2-2'},{a:'3-1'}]
直接使用原生sort无效

理解sort方法,巧妙自定义
sort使用方法:
arr.sort();//默认排序
arr.sort(comparefn(a,b));//自定义排序比较方法
当没有参数传入的时候,其排序顺序默认为,将待排序数据转换为字符串,并按照Unicode序列排序;当然,比较函数可以自定义,自定义排序函数需要返回值,其返回值为-1,0,1,分别表示a<b, a=b, a>b.
当数组长度小于等于10的时候,采用插入排序,大于10的时候,采用快排。
对于字符串的自定义sort排序
[{a:'2-3'},{a:'2-1'},{a:'1-4'},{a:'3-2'},{a:'1-1'},{a:'2-2'},{a:'3-1'}].sort((a,b)=>+(a.a>b.a)-1)
sort自定义方法接受返回值为number类型
优先判断两个值的大小,使用>得出boolean再转成number --- 0,1
a>b -> 1
a<=b -> 0
当返回值为0时,sort解析为a=b
那么将所得值-1,即可对应sort对返回值的解析
不用理会1-1=0的情况,有-1了就会有排序,为0时不动位置即可
sort自定义排序字符串('1-1','2-1','3-2'此类)的更多相关文章
- Collections.sort自定义排序的使用方法
Collections.sort自定义排序的使用方法 总结:Collections可以对List进行排序:如果想对Map进行排序,可以将Map转化成List,进行排序: public static v ...
- List<T>集合的Sort自定义排序用法简单解析
List<T>集合的Sort自定义排序用法简单解析: 如下:一系列无序数字,如果想要他们倒序排列,则使用如下代码: 那么如何理解这段代码呢? (x,y)表示相邻的两个对象,如果满足条件:x ...
- C# - List.Sort()自定义排序方法
本文通过示例介绍了C#中典型容器List.Sort()的自定义排序方法,进而引出了C#中自定义排序的核心接口及方法 项目地址:自定义Sort方法 - SouthBegonia's Github Lis ...
- [leetcode]791. Custom Sort String自定义排序字符串
S and T are strings composed of lowercase letters. In S, no letter occurs more than once. S was sort ...
- JS 用sort方法排序字符串
JavaScript提供了一种更简便的方法用于比较两个字符串——localeCompare(),localeCompare()使用本地特定的顺序来比较两个字符串,语法如下:string.localeC ...
- hdu 1263 水果 结构的排序+sort自定义排序
水果 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- c++ stl sort 自定义排序函数cmp要遵循 strict weak ordering
满足strict weak ordering的运算符能够表达其他所有的逻辑运算符(logical operator): <(a, b) : (a < b) <=(a, b): !( ...
- 007_对go语言中的自定义排序sort的小练习
在go语言基础知识中,有个知识点是go语言的自定义排序,我在学习完之后,自己做了一些小练习和总结. 首先按照惯例,还是呈上代码演示: package main import "fmt&quo ...
- [LeetCode] Custom Sort String 自定义排序的字符串
S and T are strings composed of lowercase letters. In S, no letter occurs more than once. S was sort ...
- STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase
今天学习网络编程,那个程序中利用了STL中的sort,push_back,erase,自己没有接触过,今天学习一下,写了一个简单的学习程序.编译环境是VC6.0 这个程序使用了vect ...
随机推荐
- Unity2019及Unity2020打包android的环境配置
2019安卓打包只有gradle模式了,因为谷歌把adt删了 unity2019可以自定义gradle模板,国内请把repo地址改成阿里云的源 unity2019打apk配置 引擎版本:unity20 ...
- SQL 训练题目
title: SQL 训练题目 date: 2023-7-15 01:45:50 tags: - SQL 训练 一. 查询 "01" 课程比 "02" 课程成绩 ...
- SqlSugar跨库查询/多库查询
一.跨库方式1:跨库导航 (5.1.3.24) 优点1:支持跨服务器,支持跨数据库品种, 支持任何类型数据库 优点2: 超级强大的性能,能达到本库联表性能 缺点:不支持子表过滤主表 (方案有ToL ...
- C# 中类与继承等概念
C#是一种现代的.面向对象的编程语言,其中类和继承是面向对象编程语言中非常重要的概念,类和继承是C#中面向对象编程的基本概念,可以用于创建复杂的应用程序和模块,而多态和接口可以使程序更加灵活和可扩展. ...
- powerDesigner 逆向工程 mysql 生成 PDM
1. 信息补充说明 powerDesigner 16.5 mysql 5.6 主要内容:使用powerDesigner的逆向工程,将mysql中的数据库转换成PDM文件 所需资源: powerDe ...
- 2、数据库:SQL Server部署 - 系统部署系列文章
对于微软的SQL Server的安装,以前已经有写过了,到了2022版本,安装没多大的改变,很多只需要少配置,然后直接下一步即可.现在是2023年了,SQL Server已经出到了2022版本,这篇博 ...
- 5、后端学习规划:.Net学习 - 学习规划系列文章
.Net是微软发布的一整套的软件编程解决方案.笔者从大学的时代开始就阅读.netframework的书籍了,但是当时没有进行实践.毕业后,笔者去了微软技术中心的公司上班,所以就接触了.net以及C#编 ...
- 该换Linux版本了!
提起开发,程序员们更青睐于不同版本的Linux操作系统而不是Windows.为什么?因为Linux操作起来更安全.快捷,最重要的是,它的发行版本众多.你可以根据需要挑选最适合的那一款.那么,问题来了, ...
- RocketMQ—RocketMQ发送同步、异步、单向、延迟、批量、顺序、批量消息、带标签消息
RocketMQ-RocketMQ发送同步.异步.单向.延迟.批量.顺序.批量消息.带标签消息 发送同步消息 生产者发送消息,mq进行确认,然后返回给生产者状态.这就是同步消息. 前文demo程序就是 ...
- Python-open函数-读写文件
一.open 函数语法 open() 函数的作用是打开一个文件,并返回一个 file对象(即文件对象). open 是一个动作,可以理解为我们打开文档的点击动作. file 对象是一个实物,可以理解为 ...