JavaScript sort() 方法
实例
数组排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.sort();
fruits 输出结果:
Apple,Banana,Mango,Orange
尝试一下 »
定义和用法
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。
这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。
注意: 这种方法会改变原始数组!。
浏览器支持
所有主要浏览器都支持sort()。
语法
array.sort(sortfunction)
参数 Values
参数 | 描述 |
---|---|
sortfunction | 可选。规定排序顺序。必须是函数。 |
返回值
Type | 描述 |
---|---|
Array | 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 |
技术细节
JavaScript Version: | 1.1 |
---|
更多实例
实例
数字排序(数字和升序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
points.sort(function(a,b){return a-b});
fruits输出结果:
1,5,10,25,40,100
尝试一下 »
实例
数字排序(数字和降序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
points.sort(function(a,b){return b-a});
fruits输出结果:
100,40,25,10,5,1
尝试一下 »
实例
数字排序 (字母和降序):
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();
fruits.sort();
fruits.reverse();
fruits输出结果:
Orange,Mango,Banana,Apple
尝试一下 »
路人乙
305***8979@qq.com
这个 sort() 方法,如果看上面的例子会非常痛苦。
sort() 方法,有一个可选参数,必须是函数,供它调用。那么就是个回调函数咯!
回调函数的参数要有两个:第一个参数的元素肯定在第二个参数的元素前面!!!
这个方法的排序是看回调函数的返回值:
例子:
路人乙
305***8979@qq.com
panlf
364***434@qq.com
降序排列:
尝试一下 »
panlf
364***434@qq.com
huangyifan
546***203@qq.com
这里纠正一下第一个网友的笔记:
首先,第一个参数并不是在第二个参数前面,恰恰相反,参数 b 始终在参数 a 的前面。即第一比较 a>b 其实比较的是 7>9。
第一次比较:7>9,结果为 false,即 return -1,此时 a 会换到 b 前面,即 7 在 9 之前,所以位置互换,并不是这位网友说的 a>b 位置互换,而是 a<b 位置互换。
但是最后输出的结果一样,是因为 a、b 循序理解反了,然后关于 return 结果导致位置交换的概念也弄反了,反反得正,结果就一样了。
huangyifan
546***203@qq.com
杨shuai
175***8771@qq.com
去重升序:
杨shuai
175***8771@qq.com