网络编程
位置:首页>> 网络编程>> JavaScript>> Js sort排序使用方法

Js sort排序使用方法

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

标签:sort,排序

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。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com