多列排序-先a降序排序再按b升序排序,其中包含了排序信息-实现方法function multipleSort(data, sorts)

本文介绍了如何在JavaScript中实现多列排序,首先按照'a'列降序排序,然后在'a'相同的数据基础上按照'b'列升序排序。方法考虑了sorts数组中的排序优先级,确保了排序的准确性。通过获取相同'a'值的数据下标,进行截取并重新排序后,使用splice方法替换原有数据,从而完成多列排序操作。
摘要由CSDN通过智能技术生成

数据

let sort_data = [{
		a: 1,
		b: 'a'
	},
	{
		a: 2,
		b: 'b'
	},
	{
		a: 2,
		b: 'c'
	},
];
let sorts = [{
		key: 'a',
		order: 'desc'
	},
	{
		key: 'b',
		order: 'asc'
	},
];

排序后的结果

//结果 先a降序,再按b升序
[
	{a:2,b:'b'},
	{a:2,b:'c'},
	{a:1,b:'a'},
]

思路

* 本方法限定sorts第一个key对应的值为number,其他为string
* a排好序后,b在a的基础上进行排序,即对data中a值相同的数据进行再排序;c在b的基础上排序……  以sorts中的先后顺序为准
* a排好序后,获取a对应值相同的数据,并获取这些数据在data中的下标
* 使用slice截取下标对应的数据,并按b排好序
* splice替换slice排好序的数据

实现


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JackieDYH

谢谢您嘞!我会继续加油地

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

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

打赏作者

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

抵扣说明:

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

余额充值