关于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数组除了数字排列之外还有什么差别吗?
阅读 2.5k
3 个回答

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

是你所理解的倒叙跟我们理解的不一样吧,你所理解的倒序应该是从大到小,正许序是从小到大,那个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)

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题