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].然后依次類推。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM