麻烦详细解释:sort()方法中传一个比较函数其中到底是怎么比较的?

function compare(value1,value2){

      if(value1<value2){

      return -1;

      }else if(value1>value2){

      return 1;

      }else{

      return 0;

      }

     }

     

     var test=[0,1,4,5,15,6,4];

     var result=test.sort(compare);

     console.log(result);



Ewall_
浏览 1453回答 1
1回答

IvanAstrochicha

sort()其实是冒泡排序的,把数组的内容转变为字符,相邻数组元素两两按照ASCII码进行比较,第一次比较ASCII最大的数组元素最在数组末端,第二次第二大的数组元素排在array.length-2位置,依此类推进行排序。但是,你上面的例子,输出的结果并不是想象中的,因为转变为字符排序,并不是数字排序,可以在compare方法中对value1和value2进行parseInt()转变即可。
打开App,查看更多内容
随时随地看视频慕课网APP