描述 

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对数组排序的更多相关文章

  1. sort对象数组排序

    function objectSort(property, desc) { //降序排列 if (desc) { return function (a, b) { return (a[property ...

  2. 【LeetCode】Sort Colors 数组排序

    题目:Sort color <span style="font-size:18px;">/*LeetCode sort colors 题目:输入一个数组.包括0,1,2 ...

  3. iOS sort array 数组排序里面的对象

    一:如下代码 //对数据按次数排序 NSArray *sortArrays = [pinCiDataArray sortedArrayUsingComparator:^NSComparisonResu ...

  4. js数组的sort排序详解

    <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="showBox" ...

  5. js-sort数组排序

    婆婆妈妈,直上代码: <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="sh ...

  6. sort,ksort,asort的区别

    sort--对数组的val进行排序 ksort--对数组的key值进行排序 asort--对数组进行排序,键与值的对应关系不变 1.sort对数组排序 格式如下:bool sort(array &am ...

  7. 常用的php数组排序函数

    分享几个php数组排序函数,每个函数出去sort是排序的意思前缀字母的含义分别代表: a 索引 k 数组键 r 逆向 u 用户自定义 顺序排序函数 sort — 对数组排序  ksort — 对数组按 ...

  8. js中的数组对象排序(方法sort()详细介绍)

    定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...

  9. php的二维数组排序

    //建立一个$arr的二维数组 $arr=array( array('name'=>'e','age'=>5), array('name'=>'b','age'=>2), ar ...

随机推荐

  1. 解决Intellij IDEA中项目不能识别yml配置文件

    问题:能读取资源路径下的properties配置文件但是不能读yml配置文件 因为无法读取配置yml配置文件,所以不能配置bean,导致项目启动报错. 解决方法: 在VM options中设置虚拟机加 ...

  2. ajax +formdata ,后台为PHP 实现上传整个文件夹(只适合谷歌浏览器)带进度条

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...

  3. codeforces 868C - Qualification Rounds(构造)

    原题链接:http://codeforces.com/problemset/problem/868/C 题意:有k个队伍参加比赛,比赛有n个预选的题目,有些队伍对已经事先知道了一些题目.问能不能选出若 ...

  4. Android and HTML5 开发手机应用(转载)

    作为一个WEB开发者,HTML5让我兴奋,因为它可以将桌面应用程序功能带入浏览器中.但在国内,看着到处横行的IE8版本以下的浏览器,觉得到能大规模使用HTML5技术的那天,还遥遥无期.但面对iOS及A ...

  5. (10.1)Python学习笔记二

    1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...

  6. 使用ajax异步下载文件,后端为struts2

    前端采用伪表单: 然后调用 后台代码为 效果图:

  7. HDU6030 Happy Necklace(推导+矩阵快速幂)

    HDU6030 Happy Necklace 推导或者可以找规律有公式:\(f[n] = f[n-1] + f[n-3]\) . 构造矩阵乘法: \[ \begin{pmatrix} f_i \\ f ...

  8. 【adb真机查Log】Android Studio 3.X 找不到Android Device Monitor

    参考来源:https://blog.csdn.net/yuanxiang01/article/details/80494842 以下信息来源于Android Developers官网 Android设 ...

  9. 剑指 Offer——数组中的逆序对

    1. 题目 2. 解答 借助于归并排序的分治思想,在每次合并的时候统计逆序对.因为要合并的两个数组都是有序的,如果左半部分数组当前值大于右半部分数组当前值,那么左半部分数组当前值右边的数就都大于右半部 ...

  10. mysql_存储引擎层-innodb buffer pool

    buffer pool 是innodb存储引擎带的一个缓存池,查询数据时,首先从内存中查询 数据如果内存中存在的话直接返回. innodb buffer pool 和 qcache 的区别:Qcach ...