博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript中sort()排序方法总结
阅读量:5342 次
发布时间:2019-06-15

本文共 960 字,大约阅读时间需要 3 分钟。

1. 前言:

  一直以来,对sort()方法的使用都仅仅停留在array.sort()这一步,今天看了《javascript高级程序设计》第五章 5.2.5重排序方法这一节时,对sort()方法的相关介绍看的不太明白,因此决定对sort()方法进行深入的学习。下面是我学习的总结。

2. 语法:

array.sort(sortfunction)

sortfunction:可选规定排序顺序。必须是函数。

3. 不使用参数

  在不使用参数情况下,sort()方法按升序排列数组项。sort()方法会先调用每个数组项的toString()方法,然后按照字符编码的顺序进行排序。

实例 1

实例 2

  如实例2所示,即使字符串中的数值全部都是数字,但sort()方法也同样会按照转化为字符串之后的值进行比较。

 4. 使用参数

   如果想要按照其他标准进行排序,就需要提供比较函数,该函数返回一个用于说明这两个值相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

 实例3

如上在使用了sortNum函数之后,就可以返回正确的值了,如果想进行降序排列只需要 return b-a 就可以了。sortNum函数只能用于数值类型,或者valueOf()方法返回数值类型的对象类型。

实例 4

上例中的compare函数适用于大多数的数据类型。要降序的话只要把x<y改成x>y就行了。

5. 多维数组

  如果a和b本身就是数组,这个时候我们就需要通过对它们内部的值比较来对数组进行排序了。

实例 5

6. 多重比较

  当第一个比较值相等,但是我们还想进行再次区分的时候,可以使用第二比较值,并且比较的深度可以随着我们的需求扩展。

实例 6

如上例学生数组所示,当学号相同时,这我们就需要用学生的名字进行再次排序。

 7.  对象排序

  当比较的数据越来越复杂的时候,我们最好使用对象进行排序。这样我们就能够从代码上看出来是使用什么值来进行比较的了。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/qdlife/p/3461868.html

你可能感兴趣的文章
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>
composer 安装laravel
查看>>
8-EasyNetQ之Send & Receive
查看>>
Android反编译教程
查看>>
List<string> 去重复 并且出现次数最多的排前面
查看>>
js日志管理-log4javascript学习小结
查看>>
Android之布局androidmanifest.xml 资源清单 概述
查看>>
How to Find Research Problems
查看>>
Linux用户管理
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
使用iperf测试网络性能
查看>>
图片的显示隐藏(两张图片,默认的时候显示第一张,点击的时候显示另一张)...
查看>>
Docker 安装MySQL5.7(三)
查看>>
python 模块 来了 (调包侠 修炼手册一)
查看>>
关于CSS的使用方式
查看>>
本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
查看>>
跨域解决方案之CORS
查看>>