數組對象中屬性值排序


之前總結過簡單的數組排序,最近在工作中遇到要利用數組里面對象的某個屬性值進行排序,最開始我用的是循環,從而對比它的屬性值,忽然在高級程序設計上看到了更為簡潔的辦法,就是用sort(),以及作為值得函數,sort()很常用的排序方法,最主要的是里面的比較函數參數,最重要的是定義一個比較函數如下:

function creatCompare(propertyName) {
        return function (obj1,obj2) {
            var value1=obj1[propertyName];
            var value2=obj2[propertyName];
            console.log(obj1)
            if(value1<value2){
                return -1
            }else if(value1>value2){
                return 1
            }else {
                return 0
            }
        }
    }

這個就是一個函數里面嵌套了一個函數,而且內部函數前面有個return ,在函數內部接收到propertyName后,會用方括號取得屬性的值,然后就進入sort()的工作范圍內,來個例子如下:

var data=[{name:"xiaoming",age:13,weight:20,},{name:"liming",age:23,weight:21},{name:"zhangming",age:8,weight:66}]
console.log(data.sort(creatCompare("age")))   //  

很明顯age屬性已經進行排序,其實熟悉sort()的同學知道,該方法里面也是循環,


免責聲明!

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



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