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
投稿

猜你喜欢

  • 浅析“Rich”设计模式

    2009-03-12 12:36:00
  • 得到元素真实的背景颜色的函数

    2008-05-20 12:04:00
  • 关于CSS中字号控制的兼容性研究[译]

    2009-02-24 16:35:00
  • 使用字符串建立查询能加快服务器的解析速度吗?

    2010-07-14 21:03:00
  • IE8 的 JSON 解析 Bug

    2009-05-22 12:36:00
  • 采用手动分页方式显示文章具体的内容

    2009-10-29 11:58:00
  • python实现邮件发送功能

    2023-10-11 02:27:09
  • PHP fprintf()函数用法讲解

    2023-06-01 20:09:20
  • 全方位清理浮动

    2009-06-16 14:51:00
  • 比较文档位置

    2008-04-03 13:24:00
  • 中国传统色彩名录

    2007-11-29 18:36:00
  • 用文本+ASP打造新闻发布系统

    2009-02-02 09:31:00
  • 向Oracle数据库的CLOB属性插入数据报字符串过长错误

    2023-07-23 11:11:06
  • PHP header()函数常用方法总结

    2023-09-06 16:51:50
  • IE中选择符的4095限制

    2009-10-09 13:25:00
  • 每个分类取最新的几条的SQL实现代码

    2012-08-21 10:57:18
  • asp如何遍历Cookies集合?

    2009-11-08 19:07:00
  • ASP看代码学习CASE的用法

    2008-04-13 06:36:00
  • 为SQL Server数据库传数组参数的变通办法

    2009-10-23 09:26:00
  • [译]2009年海外Web设计风潮(上)

    2009-01-23 09:21:00
  • asp之家 网络编程 m.aspxhome.com