这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
在数组中有两个可以用来直接排序的方法,分别是 reverse()和 sort()。下面通过本文给大家详细介绍,对 js 数组重排序相关知识感兴趣的朋友一起看看吧
1. 数组中已存在两个可直接用来重排序的方法:reverse()和 sort()。
reverse() 和 sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:
- var values = [1, 2, 3, 4, 5];
- values.reverse();
- alert(values); //5,4,3,2,1
在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的 toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串:
- var values = [0, 1, 5, 10, 15];
- values.sort();
- alert(values); //0,1,10,15,5
因此,sort()方法可以接收一个比较函数作为参数。
- function compare(value1,value2){
- if (value1 < value2){
- return -1;
- }else if (value1 > value2){
- return 1;
- }else{
- return 0;
- }
- }
此比较函数可适用于大多数数据类型,只要将其作为参数传递给 sort()方法即可:
- var values = [0, 1, 3, 7, 9, 15];
- values.sort(compare);
- alert(values); //0,1,3,7,9,15
也可通过比较函数产生降序排序,只需交换函数返回值即可:
- function compare (value1, value2){
- if (value1<value2){
- return 1;
- }else if {
- return -1;
- }else{
- return 0;
- }
- }
sort() 函数的排序条件是:
参数大于 0,arr 的相邻两个元素交换位置;
参数小于 0,arr 的相邻两个元素不交换位置;
参数等于 0,arr 的相邻两个元素大小相等; 所以 compare 自定义函数必须返回一个数值。
2. 对于数值类型或者 valueOf()方法会返回数值类型的对象类型。
可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。
- function compare (value1,value2){
- return value2 - value1;
- }
以上所述是小编给大家介绍的 JS 中数组重排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0527/330493.html