Js sort排序使用方法

时间:2023-10-19 10:20:55 

javascript sort()排序用法

sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。

语法:arrayObject.sort(sortFunction);

参数

arrayObj 必选项。任意 Array 对象。

sortFunction 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

注意:sortFunction参数,用来规定排序的顺序,必须是函数。

javascript 中 array.sort() 中的参数,需要传入的是一个函数,而且必须是一个函数。

其中的x ,y代表的是array中的两个对象。 需要注意的是,返回类型只有三种:负整数、零、正整数 一般习惯上使用 -1 0 1 代表 另外有个小技巧,如果只需要对一个属性进行比较,比如这里的年龄,那么整个排序方法就只有一句话了

function a(x,y){ return x.age-y.age; }

["apple","banana","car","app"].sort();  //["app","apple","banana","car"][82,71,99,4,10,120].sort();   //[10,120,4,71,82,99]

可以看到第2个数组中,数字并没有按正常顺序排序,如果要对数字进行排序,则可以给 sort() 传递一个回调函数,回调函数接收两个参数,即两个需要比较的元素,假设第1个参数名为 a,第2个为 b:

  • 如果想让 a 排在 b 前边,就需要回调函数返回一个负数;

  • 如果让 a 排在 b 的后边就需要返回正数;

  • 如果让 a 和 b 保持原来的位置,则返回0,不过不同的浏览器对于返回0的处理方式不同,有可能让 a 在前 b 在后,也有可能让 b 在前 a 在后。

请看下面的代码:

[82,71,99,4,10,120].sort((a,b)=>{

    if(a>b)return 1;

    if(a<b)return-1;

    if(a===b)return 0;

}); //[4,10,71,82,99,120]

上方的代码可以简写成的代码如下:

[82,71,99,4,10,120].sort((a,b)=>a-b);因为当 a<b 时,a-b 一定是负数,当 a>b 时,a-b 肯定为正数,而当 a=b 时,结果为 0,这样就满足了正序排列的条件。如果要倒序排列数组,则可以返回 b-a。

标签:sort,排序
0
投稿

猜你喜欢

  • 5分钟快速掌握Python定时任务框架的实现

    2023-05-31 10:19:45
  • 在windows下使用python进行串口通讯的方法

    2022-01-03 11:10:19
  • Oracle与SQL Server在企业应用的比较

    2010-07-20 13:34:00
  • Python Type Hints 学习之从入门到实践

    2022-10-05 15:53:54
  • vue.js表格分页示例

    2024-05-02 16:40:45
  • 解读golang plugin热更新尝试

    2024-05-22 10:09:28
  • 牢不可破的九宫格布局

    2009-07-24 12:40:00
  • 减少用户的思考

    2010-09-07 12:14:00
  • 教你给《羊了个羊》配置一套智能客服系统

    2022-01-25 21:33:36
  • Python中使用Inotify监控文件实例

    2021-03-03 14:17:05
  • 关于 Web 字体:现状与未来[译]

    2009-11-24 13:50:00
  • Python中使用PyHook监听鼠标和键盘事件实例

    2022-03-23 16:53:22
  • SQL Server数据库中伪列及伪列的含义详解

    2024-01-27 19:19:19
  • Django怎么在admin后台注册数据库表

    2024-01-26 03:12:50
  • asp如何验证字符串是否包含有效字符?

    2009-11-08 19:02:00
  • 实例演示在SQL中启用全文检索

    2011-10-01 14:01:37
  • python dataframe向下向上填充,fillna和ffill的方法

    2021-11-07 18:16:47
  • Microsoft Access项目不能压缩的原因

    2008-11-28 14:48:00
  • google地图的路线实现代码

    2024-04-10 10:51:28
  • python装饰器初探(推荐)

    2023-01-19 14:40:27
  • asp之家 网络编程 m.aspxhome.com