Javascript中的数组对象有自己的排序方法排序(),排序数组中的数据项,但有时排序结果并不令人满意,例如。


var arr = { 12, 1, 2,21, 3 };
Arr.sort();
警报(ARR);结果是1,12,2,21,3




为什么会这样因为Javascript中的排序默认是用ASCII字符代码排序的,也就是说,数字也是按字符串形式排序的。


无功strarr = {'a',2,'a2 ','2a,B,3'};
警报(strarr.sort());




这是什么结果2,2a,3,A,A2,B



因为ASCII码的数量比字母表小,所以数字在前面,字母在后面。

如果你想继续保持上述数组arr的号码吗

Javascript为我们提供了一个条目,它可以将一个参数传递给排序()方法,即比较函数,它告诉我们排序算法是否大于、小于或等于值和值之间的值。

比较函数是一个具有特定算法的函数。


compare_fn(value1,value2功能){
如果(value1 value2 P<0.05){
返回- 1;
} else if(value1 value2 { >)
返回1;
{人}
返回0;
}
}



通过比较功能compare_fn排序,然后排序,然后输出


Arr.sort(compare_fn);
警报(ARR);获得1, 2, 3,12, 21




Javascript中数组对象的排序方法返回值的定义定义为

负值:如果传递的第一个参数小于第二个参数

零:两个值相等。

正值:如果第一个参数大于第二个参数



上述比较函数也可以简单地写成


compare_fn(value1,value2功能){
value1 value2的回报-;
}



这个比较是升序。



如果你想要一个降序,直接改变上面的返回值的符号就可以了,所有的返回都是相反的。

缩略语的比较功能是


compare_fn(value1,value2功能){
(value1 value2回报--);
}




这是


compare_fn(value1,value2功能){
返回- value1 value2;
}



简单的符号是:升序,逆序。

上面的数组排序的排序方法是萧边分享给你的所有内容,希望能给大家一个参考,我希望你能支持它。