数组排序

将一个全是数字的数组按照数字大小从大到小或者从小到大重新排列,这类问题并不少见,在此,列举了一种数组排序的方法。

先var一个数组并写出排序的函数

 

var Arr = [10,2,0.6,51,133,125,1,0.05,555,0];
Array.prototype.paiXu = function(){
        var temp;
        for(var i=0; i<Arr.length;i++) {
            for(var j=i+1;j<Arr.length;j++) {
                if(Arr[i]<Arr[j]) {  //升序 >、降序 <
                    temp=Arr[i];
                    Arr[i]=Arr[j];
                    Arr[j]=temp;
                }
            }
        }
        return Arr
    };

原理:(降序为例)设置一个temp变量用于存储对比数,那么temp第一次循环的值等于Arr[0],即temp = 10;

然后依次和数组其他元素做对比,循环过程中,当temp当前值小于某一值(假设X),则重新给temp赋值X;

依次循环下去,不停地给temp赋予新值,同时也在重组数组,最终得到的数组就是一个降序的数组。

调用:

Arr.paiXu()

可打印出来检测,结果亲测可用。

还有一种js自带的排序功能

var numArr = [3,6,2,4,1,5];
	console.log(numArr.sort());
	console.log(numArr.sort().reverse());
// 这种方式只适合个位数,一旦是多位数,就会达不到想要的效果,例如:


var arr1 = [1,12,11,2,21];
console.log(arr1 .sort());
// 结果是[1,11,12,2,21]

输出结果:[1, 2, 3, 4, 5, 6] 和 [6, 5, 4, 3, 2, 1]

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值