首页 新闻 会员 周边

关于js中的sort这个调用有些不理解。

0
悬赏园豆:5 [已关闭问题] 关闭于 2012-10-16 16:03
  1. //降序函数  
  2. var desc = function(x,y)    
  3. {    
  4.     if (x > y)      
  5.         return -1;  //返回一个小于0 的数即可  
  6.     else        
  7.         return 1;  //返回一个大于0 的数即可  
  8. }    
  9. //升序函数  
  10. var asc = function(x,y)    
  11. {    
  12.     if (x > y)      
  13.         return 1;  //返回一个大于0 的数即可  
  14.     else            
  15.         return -1;  //返回一个小于0 的数即可  
  16. }  
  17.   
  18. var arr2 = [4,6,4,2,7,9,0,1];    
  19. arr2.sort(desc); //降序排序  
  20. document.writeln(arr2);    
  21. document.writeln("<br>");    
  22. arr2.sort(asc); //升序排序  
  23. document.writeln(arr2);  

    为什么比其他数更大还要互换这样才算

    1. //降序函数  
    2. var desc = function(x,y)    
    3. {    
    4.     if (x > y)      
    5.         return -1;  //返回一个小于0 的数即可  
    6.     else        
    7.         return 1;  //返回一个大于0 的数即可  
    8. }  
    9. 为什么比他小的时候反而是返回负数,而不是正数呢,能不能解释下sort这个函数里面的排序的原理呢,小弟刚刚接触js,谢谢
  24.  
问题补充:

我觉得,应该是更小的时候不要返回负数,不懂里面的原理。

信息技术的风采的主页 信息技术的风采 | 初学一级 | 园豆:156
提问于:2012-06-16 23:57
< >
分享
所有回答(3)
0

这个只是一个符号标志

999999999999999 | 园豆:3 (初学一级) | 2012-06-20 22:25
0

这个隐含了策略模式

unbreakable | 园豆:111 (初学一级) | 2012-07-11 07:59
0

查找了一下那个手册之后明白了。。。

信息技术的风采 | 园豆:156 (初学一级) | 2012-10-16 16:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册