为了账号安全,请及时绑定邮箱和手机立即绑定

请问在javascript中sort函数问题,参数那么写什么意思?

/ 猿问

请问在javascript中sort函数问题,参数那么写什么意思?

偶然的你 2019-09-20 15:14:43

javascript中sort函数问题,参数那么写什么意思


查看完整描述

3 回答

?
哈士奇WWW
  1. sort 方法


  2. 返回一个元素已经进行了排序的 Array 对象。


  3. arrayobj.sort(sortfunction)


  4. 参数


  5. arrayObj


  6. 必选项。任意 Array 对象。


  7. sortFunction


  8. 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。


  9. 说明


  10. sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。


  11. 如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:


  12. 负值,如果所传递的第一个参数比第二个参数小。


  13. 零,如果两个参数相等。


  14. 正值,如果第一个参数比第二个参数大。


  15. 示例


  16. 下面这个例子说明了 sort 方法的用法:


  17. function SortDemo(){ 


  18.    var a, l;                       // 声明变量。 


  19.    a = new Array("X" ,"y" ,"d", "Z", "v","m","r"); 


  20.    l = a.sort();                   // 排序数组。 


  21.    return(l);                      // 返回排序的数组。 


  22. }


  23. 说明

  24. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

  25. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:


  26. 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

  27. 若 a 等于 b,则返回 0。


  28. 若 a 大于 b,则返回一个大于 0 的值。


  29. 请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

  30.  <script type="text/javascript">function sortNumber(a,b){return a - b}var arr = new Array(6)arr[0] = "10"arr[1] = "5"arr[2] = "40"arr[3] = "25"arr[4] = "1000"arr[5] = "1"document.write(arr + "<br />")document.write(arr.sort(sortNumber))</script>



查看完整回答
反对 回复 2019-09-22
?
慕盖茨4494581

给你个理解的方式,假如sort函数的代码是这样的:
Array.prototype.sort(compareFn){
var defaultCompareFn = function(a,b){//(冒泡)排序方式内容};
if(!compareFn || typeof compareFn != 'function'){
compareFn = defaultCompareFn;
}
//可能调用的实现方式
var ps = [];
for(var i=0;i<this.length;i++){
ps[i] = compareFn(this[i],this[(i+1)>=this.length?0:(i+1)]);
}
//....
}


查看完整回答
反对 回复 2019-09-22
?
桃花长相依

函数当参数传为什么要带自己的参数,带参数那就是调用了,不是引用了。

sort怎么比较那是sort内部的实现,你只需要告诉sort怎么样比较两个数大小就可以了,任何比较算法最关键的区别就是获得每个项的大小。冒泡排序归并排序快速排序的算法都不同的

查看完整回答
反对 回复 2019-09-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信