JS中数组重排序⽅法
1.数组中已存在两个可直接⽤来重排序的⽅法:reverse()和sort()。
reverse()和sort()⽅法的返回值是经过排序后的数组。reverse()⽅法会反转数组项的顺序:
var values=[1,2,3,4,5];
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函数 js
因此,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中数组重排序⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。