搜索

首页  >  问答  >  正文

javascript - 关于reverse()有个小疑问

var a =[13,21,223,34,4,9,73]  //定义一个数组
a.reverse(); //给它倒叙
console.log(a);  
// [73, 9, 4, 34, 223, 21, 13],reverse()没那么好用,不是想要的

function compare(v1,v2){
  return v1-v2
}
a.sort(compare);   

console.log(a); //[4, 9, 13, 21, 34, 73, 223] 

a.reverse();  
console.log(a)   // [223, 73, 34, 21, 13, 9, 4] ,奇怪为什么在重新给a倒叙时,reverse()就管用了,这时的a数组与最开始的a数组除了数字排列之外还有什么差别吗?
阿神阿神2790 天前777

全部回复(3)我来回复

  • 迷茫

    迷茫2017-04-11 11:54:07

    所谓的倒序是指首尾交换2333

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 11:54:07

    是你所理解的倒叙跟我们理解的不一样吧,你所理解的倒序应该是从大到小,正许序是从小到大,那个reverse有何关系?,下面的代码同样能满足你的需求

    function compare(v1,v2){
      return v2-v1;
    }
    a.sort(compare);   
    
    console.log(a); //[4, 9, 13, 21, 34, 73, 223] 
    
    a.reverse();  
    console.log(a)

    回复
    0
  • 迷茫

    迷茫2017-04-11 11:54:07

    1.reverse是用来翻转数组用的,而不是用来排序
    2.当你最后一个reverse能输出你想要的结果是建立在你已经将数组进行排序号以后的情况(即a.sort(compare)后得到的结果)
    3.sort是用来排序的,默认是按照字符编码的顺序进行排序

    回复
    0
  • 取消回复