本文主要是介绍js根据后端返回过来的json对象数组的多个属性过滤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在做项目过程中碰到一个问题,就是前端需要对json数据按照某种规则进行排序,这时候就难倒我了,说实话,我对前端不太熟,但是也是深深的学习了一下
这个排序我在java的集合对象排序中见过,所以在js中就比较快了
var result=[{id:"PJY2020006",name:'VAT-C-1'},{id:"PJY2020004",name:'VAT-S-2'},{id:"PJY2020003",name:'VAT-S-3'},{id:"PJY2020005",name:'VAT-C-4'}]function sortAA(a,b){if(a.name.substring(0,5)==b.name.substring(0,5)){if(a.id<b.id){return -1;}else if(a.id>b.id){return 1;}else{return 0;}}else{if(a.name.substring(0,5)<b.name.substring(0,5)){return -1;}else{return 1;}}}console.log(result.sort(sortAA))
我们应该怎么理解呢?这次我也是看了文档深深的记住了
下面这个图是java的,但是原理是一样的
如果你写了下面这个逻辑,如果是小于返回-1,表示正序,如果你返回正数,表示反序;或者是比较的对象调换顺序然后
if(a.id<b.id){return -1;}
当然我们也可以使用js的lambda表达式来写
一句话搞定,香
console.log(result.sort((a,b)=>(a.name.substring(0,5)==b.name.substring(0,5))?(a.id==b.id?0:(a.id>b.id?1:-1)):((a.name.substring(0,5)>b.name.substring(0,5))?1:-1)))
这篇关于js根据后端返回过来的json对象数组的多个属性过滤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!