根據數組對象中的某個屬性值排序


最近做項目,后台返回的數組對象沒有排序,而我需要根據序號將數據顯示在頁面上,但是不想一個一個取值,想到對數組對象排序后然后直接循環顯示。數據結構如下:

 

 現在需要升序排列,用sort()方法,

sort()很常用的排序方法,最主要的是里面的比較函數參數,最重要的是定義一個比較函數如下:

function creatCompare(propertyName) { //根據哪個屬性值排序
    return function (obj1,obj2) { //對象兩兩比較
        let value1=obj1[propertyName]; let value2=obj2[propertyName]; if(value1<value2){ return -1 }else if(value1>value2){ return 1 }else { return 0 } } }
let familyconsumptions = familyInfoListinfo.familyconsumptions if (familyconsumptions) { let sortFamilyconsumptions = familyconsumptions.sort(creatCompare('familyconsumptionId')) console.log(sortFamilyconsumptions) for (let i = 0; i < sortFamilyconsumptions.length; i++) { document.querySelectorAll('.familyconsumptions input')[i].value = sortFamilyconsumptions[i].consumptionData } } let familyincomeinfos = familyInfoListinfo.familyincomeinfos if (familyincomeinfos) { let sortFamilyincomeinfos = familyincomeinfos.sort(creatCompare('familyincomeId')) console.log(sortFamilyincomeinfos); for (let i = 0; i < sortFamilyincomeinfos.length; i++) { document.querySelectorAll('.familyincomeinfos input')[i].value = sortFamilyincomeinfos[i].incomeData } }

 

排序后的結果

 

 關於sort的介紹:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 


免責聲明!

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



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