js根据后端返回过来的json对象数组的多个属性过滤

本文介绍了如何在JavaScript中对JSON数据按照特定规则进行排序。通过提供一个示例,展示了如何使用自定义排序函数`sortAA`对对象数组按`name`字段的前五个字符以及`id`进行排序。同时,也提到了使用lambda表达式简化排序逻辑的方法。此外,文章强调了在排序函数中返回值的意义,即决定元素的相对顺序。
摘要由CSDN通过智能技术生成

在做项目过程中碰到一个问题,就是前端需要对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)))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java后端指南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值