sort对数组排序
描述
Array的sort方法用于对原数组进行排序,不会产生新的数组。排序默认的规则是按照数组元素的字符编码进行排序。如果要按照自己的意愿对数组进行升序或者降序排序,就需要对sort传入一个比较函数,该方法有两个参数a,b进行比较,并且接收由两个参数比较所得的结果 a>b 返回值为1 a<b 返回值-1 a=b 返回值为0 。了解了这些我们就可以很方便的对各种数组进行排序,下面可以看一下具体的实例。
一、sort的默认排序
let ary=[1,3,5,4,3,7,0]
console.log(ary.sort())//[0, 1, 3, 3, 4, 5, 7]
let ary1 =[1,11,21,9,4,24]//[1, 11, 21, 24, 4, 9]
console.log(ary1.sort())
二、sort的升序或降序
let ary3 = [1, 31, 14, 11, 22, 88, 53]
console.log(ary3.sort((a, b) => { //[1, 11, 14, 22, 31, 53, 88]
return a - b
}))
console.log(ary3.sort((a, b) => {//[88, 53, 31, 22, 14, 11, 1]
return b - a
}))
let ary4 = ['he', 'Pg', 'ab', 'cd']
console.log(ary4.sort((a, b) => { //["ab", "cd", "he", "Pg"]
let a1 = a.toLowerCase();
let b1 = b.toLowerCase();
if (a1 < b1) return -1;
if (a1 > b1) return 1;
return 0;
}))
三、sort对数组对象按照特定字段的排序
3.1:常规的数字或字母对象排序
let objList = [{
name: 'a',
value: '1'
}, {
name: 'd',
value: '12'
}, {
name: 'b',
value: '11'
}, {
name: 'e',
value: '9'
}]
objList.sort((a, b) => {
return a.value - b.value
})
console.log(JSON.stringify(objList))//[{"name":"a","value":"1"},{"name":"e","value":"9"},{"name":"b","value":"11"},{"name":"d","value":"12"}]
3.2、对value值为汉字的排序
let objList1 = [{
name: '科长',
value: '1'
}, {
name: '行长',
value: '12'
}, {
name: '金龟子',
value: '11'
}, {
name: '阿拉伯',
value: '9'
}, {
name: '创新',
value: '91'
}]
objList1.sort((a, b) => {
return a['name'].localeCompare(b['name'])
})
console.log(JSON.stringify(objList1))
//[{"name":"阿拉伯","value":"9"},{"name":"创新","value":"91"},{"name":"金龟子","value":"11"},{"name":"科长","value":"1"},{"name":"行长","value":"12"}]
注意,这里排序识别不了多音字。 按照我自己的理解(如:我们认为'行长' 对应的首字母是 H 但是 中文字库存的是 ‘X’)
如有错误,请指出。谢谢!!
sort对数组排序的更多相关文章
- sort对象数组排序
function objectSort(property, desc) { //降序排列 if (desc) { return function (a, b) { return (a[property ...
- 【LeetCode】Sort Colors 数组排序
题目:Sort color <span style="font-size:18px;">/*LeetCode sort colors 题目:输入一个数组.包括0,1,2 ...
- iOS sort array 数组排序里面的对象
一:如下代码 //对数据按次数排序 NSArray *sortArrays = [pinCiDataArray sortedArrayUsingComparator:^NSComparisonResu ...
- js数组的sort排序详解
<body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="showBox" ...
- js-sort数组排序
婆婆妈妈,直上代码: <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="sh ...
- sort,ksort,asort的区别
sort--对数组的val进行排序 ksort--对数组的key值进行排序 asort--对数组进行排序,键与值的对应关系不变 1.sort对数组排序 格式如下:bool sort(array &am ...
- 常用的php数组排序函数
分享几个php数组排序函数,每个函数出去sort是排序的意思前缀字母的含义分别代表: a 索引 k 数组键 r 逆向 u 用户自定义 顺序排序函数 sort — 对数组排序 ksort — 对数组按 ...
- js中的数组对象排序(方法sort()详细介绍)
定义和用法 sort() 方法用于对数组的元素进行排序. 语法 arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...
- php的二维数组排序
//建立一个$arr的二维数组 $arr=array( array('name'=>'e','age'=>5), array('name'=>'b','age'=>2), ar ...
随机推荐
- A1009
两个多项式的乘积 两个数组,一个放多项式1,一个放结果 注意:arr2[j+exp]+=arr1[j]*coe; 因为有指数相加相同的情况下需要合并系数 #include<cstdio> ...
- TweenMax的GSAP(GreenSock动画平台)GSAP,专业的Web动画库
很好奇红框框里面的内容是什么,于是点了进去,又百度了下这个英文缩写具体指的什么东西. GSAP的全名是GreenSock Animation Platform,是一个从flash时代一直发展到今天的专 ...
- import Vue form 'vue' 解释
- 微信小程序支付 java
原文:https://blog.csdn.net/zhourenfei17/article/details/77765585 话不多说,直接开撸. 支付流程步骤: 1)首先调用wx.login方法获取 ...
- 在 mac 系统上安装 python 的 MySQLdb 模块
在 mac 系统上安装 python 的 MySQLdb 模块 特别说明:本文主要参考了Mac系统怎么安装MySQLdb(MySQL-Python) 第 1 步:下载 MySQL-python-1.2 ...
- p4841 城市规划
分析 https://www.luogu.org/blog/DRA/solution-p4841 代码(似乎附赠了一个全家桶呢) #pragma GCC optimize(2) #pragma GCC ...
- The MEAN stack is a modern replacement for the LAMP (Linux, Apache, MySQL, PHP/Python) stack
w https://www.mongodb.com/blog/post/building-your-first-application-mongodb-creating-rest-api-using- ...
- fedora23中安装php-mysql等
scheme: [ski:M], ch本身还是发的k音, 如同school, 但爆破后发g 默认的, by default. 没有defaultly 基本上所有的短语, 修饰名词都是放在名词的后面的: ...
- VMware 虚拟机的虚拟磁盘编程知识点扫盲之一
目录 目录 前言 VMware 虚拟机文件类型 VMware 虚拟机的快照 Quiseced Snapshot Quiseced Snapshot 的创建过程 创建快照 创建快照的执行过程及原理 删除 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第1节 Scanner类_2-概述及其API文档
键盘输入的类 Scanner首字母是大写的S.说明这是一个类,并不是关键字.关键字都是小写的.这个类是jdk中已经提供好的 1.看包 2.构造方法. 3.方法 只要不是引用类型,就是基本类型