js排序

一:

var num=[7,45,100,4,2,564];
    function sortNum(a,b){
        return a-b;
    }
num.sort(sortNum);
console.log(num)  //[2, 4, 7, 45, 100, 564]

二:

var list=[
    {name:"lisan",age:22},
    {name:"zhangsi",age:20},
    {name:"laowu",age:25}
];
function sortNum(ageList){
     return function(a,b){
        var list1=a[ageList];
        var list2=b[ageList];
        return list1-list2
    }  
};
list.sort(sortNum('age'));
console.log(list);
//结果如下
{name: "zhangsi", age: 20}
{name: "lisan", age: 22}
{name: "laowu", age: 25}

三:冒泡排序

var arrNum=[7,8,3,2];
function sortArr(arr){
    for(var i=0;i<arr.length;i++){
        for(var j=0;j<arr.length-1-i;j++){
            if(arr[j]>arr[j+1]){
                var temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    };
    return arr;
};
console.log(sortArr(arrNum))

js中排序sort其实就是arrNum中第一个与第二个比较,如果第一个比第二个大,那么他们交换位置,否则不变。然后第二个和第三个比较,大的那个向后排,依次结果[7,3,2,8]。也就是把最大的那个排到了最后面,但这不是我们想要的结果。

所以再上面有2层循环,当i=0时[7,2,3,8],当i=1时,其实前面已经把最大的那个排出来了 ,所以这里的j<arr.length-1-i,结果时[3,2,7,8].然后依次类推。

posted @ 2017-09-01 15:56  停留就好  阅读(1473)  评论(0编辑  收藏  举报