根据数组对象中的某个属性值排序


最近做项目,后台返回的数组对象没有排序,而我需要根据序号将数据显示在页面上,但是不想一个一个取值,想到对数组对象排序后然后直接循环显示。数据结构如下:

 

 现在需要升序排列,用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