本博文源于js基础,主要探讨内部sort()函数的使用规则。c语言的sort跟js的sort类似,如果大家对c的sort有疑问,可以看博主这篇文章:
(c语言)qsort及rand使用指南(附测试用例)
下面进入正题。
引言
sort()函数是一种内部排序,书写比较规则在程序中叫做复写,下面就用三个案例教会大家如何使用js的sort。
案例1----从小到大
排序规则
<script>
var arr = [23,435,456,23,2,345,2,32,11,324,32,43,65,667,78,46];
arr.sort(function(a,b){
if(a<b) {
return -1;
}else {
return 1;
}
});
console.log(arr);
</script>
a,b分别表示原数组中排序靠前、排序靠后的两个数字,即a、b并不特指某个数字,但是在数组原序上数字a一定是排在数字b之前的。函数体内,如果希望这两个数组交换顺序,则返回任何一个正数即可;如果不希望这两个数交换顺序,则返回任何一个负数即可。
测试效果:
案例2----差值比较
a表示原数组中排序靠前的数字,b表示原数字中排序靠后的数字,返回a-b的差即表示:如果靠前的数字a大于靠后的数字b,则返回整数,表示需要交换两个数字的位置,反之则不交换,这样的规则使数组正序排列了。
排序规则
<script>
var arr = [23,435,456,23,2,345,2,32,11,324,32,43,65,667,78,46];
arr.sort(function(a,b){
return a-b;
});
console.log(arr);
</script>
测试效果
案例3----字符串长短比较
var arr=["⭐⭐⭐","⭐⭐⭐⭐⭐","⭐⭐","⭐⭐⭐⭐",
"⭐⭐⭐⭐⭐⭐⭐"];
请将数组按五角星的★个数进行排序。个数也就是长度(数组.length就对了)
排序规则
<script>
var arr=["⭐⭐⭐","⭐⭐⭐⭐⭐","⭐⭐","⭐⭐⭐⭐",
"⭐⭐⭐⭐⭐⭐⭐"];
arr.sort(function(a,b){
return a.length - b.length;
});
console.log(arr);
</script>