members = [45, 23, 12, 34];
members = members.sort(function(a, b){
return a-b;
);
这里面a-b为升序,b-a降序排列;但a,b值具体是多少,取的是什么值呢?还是说这是固定的一种写法而已?
jqueryfunction

解决方案 »

  1.   

    排序肯定要比较两个数字的大小啊,sort方法内部实现了冒泡排序或者其他排序算法,
    function(a, b){
    return a-b;
    )
    这个函数只是定义了排序的规则,在sort方法中会调用这个函数,并传入集合中的两个值精细比较,对应了形参a和b
      

  2.   

    如果这个集合的内容是{1,2,3,4,5....}那么在排序的时候,是对集合里面的元素依次对比吗?还是只取前两个元素1、2,然后分别付给a、b这两个参数进行比较?我刚接触jq,所有有些东西还不是很理解。谢谢啊!!
      

  3.   

    如果这个集合的内容是{1,2,3,4,5....}那么在排序的时候,是对集合里面的元素依次对比吗?还是只取前两个元素1、2,然后分别付给a、b这两个参数进行比较?我刚接触jq,所有有些东西还不是很理解。谢谢啊!!
    大学c语言中最简单的冒泡排序没学过吗
      

  4.   

    如果这个集合的内容是{1,2,3,4,5....}那么在排序的时候,是对集合里面的元素依次对比吗?还是只取前两个元素1、2,然后分别付给a、b这两个参数进行比较?我刚接触jq,所有有些东西还不是很理解。谢谢啊!!
    大学c语言中最简单的冒泡排序没学过吗
    我不理解是,决定是升序还是降序是不是由a-b来决定呢,我看到网上一般来说是a-b为升序,b-a为倒序,如果冒泡依次进行比较的话,那a-b的返回值是正是负是会变的!还是说决定升序降序a-b这是这么个写法,比如:a-b就代表升序,b-a就代表降序!我说的有点乱,您理解我说的意思吗?
      

  5.   

    如果这个集合的内容是{1,2,3,4,5....}那么在排序的时候,是对集合里面的元素依次对比吗?还是只取前两个元素1、2,然后分别付给a、b这两个参数进行比较?我刚接触jq,所有有些东西还不是很理解。谢谢啊!!
    大学c语言中最简单的冒泡排序没学过吗
    我不理解是,决定是升序还是降序是不是由a-b来决定呢,我看到网上一般来说是a-b为升序,b-a为倒序,如果冒泡依次进行比较的话,那a-b的返回值是正是负是会变的!还是说决定升序降序a-b这是这么个写法,比如:a-b就代表升序,b-a就代表降序!我说的有点乱,您理解我说的意思吗?应该这么理解:
    函数function(a, b){
      return a-b;
    )
    是用来定义比较规则的。为了方便描述,我们现在给这个函数取个名字
    function rule(a, b){
      return a-b;

    该函数返回值是正是负,表示的是升序还是降序,是由调用这个函数的调用者sort决定的。
    比如:
    if(rule(members[0],members[1])>0){
       交换members[0],members[1]位置
    }
    比较规则是由你自己来定的,你也可以写成
    function rule(a, b){
      return 1000*a-200*b;

    只要它是符合你业务需求。这个跟设计模式中的策略模式很类似,外层的大的算法已经定下来了,我只要传送一个运算的规则就行了。
      

  6.   

    如果这个集合的内容是{1,2,3,4,5....}那么在排序的时候,是对集合里面的元素依次对比吗?还是只取前两个元素1、2,然后分别付给a、b这两个参数进行比较?我刚接触jq,所有有些东西还不是很理解。谢谢啊!!
    大学c语言中最简单的冒泡排序没学过吗
    我不理解是,决定是升序还是降序是不是由a-b来决定呢,我看到网上一般来说是a-b为升序,b-a为倒序,如果冒泡依次进行比较的话,那a-b的返回值是正是负是会变的!还是说决定升序降序a-b这是这么个写法,比如:a-b就代表升序,b-a就代表降序!我说的有点乱,您理解我说的意思吗?应该这么理解:
    函数function(a, b){
      return a-b;
    )
    是用来定义比较规则的。为了方便描述,我们现在给这个函数取个名字
    function rule(a, b){
      return a-b;

    该函数返回值是正是负,表示的是升序还是降序,是由调用这个函数的调用者sort决定的。
    比如:
    if(rule(members[0],members[1])>0){
       交换members[0],members[1]位置
    }
    比较规则是由你自己来定的,你也可以写成
    function rule(a, b){
      return 1000*a-200*b;

    只要它是符合你业务需求。这个跟设计模式中的策略模式很类似,外层的大的算法已经定下来了,我只要传送一个运算的规则就行了。
    恩。。理解了  谢谢啊!