js实现多列排序-存在问题
js实现多列排序
根据业务逻辑调整 sortData 的数据。
排序的规则是按照第一列排序,第一列相同按照第二列排序,依次类推
// 要排序的数据
const array = [{ name: '甲'asd, age: 10, money: 100 }, { name: '亿', age: 10, money: 90 }, { name: '丙', age: 9, money: 100 }]
// 排序的顺序,和升序降序 descending,ascending
const sortData = [{ orderColumn: 'age', orderState: 'ascending' }, { orderColumn: 'money', orderState: 'descending' }]
array.sort((a, b) => {
const sortFun = (index) => {
const currentSort = sortData[index]
// 如果当前相同,则递归向下排序
if (a[currentSort.orderColumn] === b[currentSort.orderColumn]) {
// 如果没有下级了,直接按照当前层级进行排序
if (sortData.length - 1 >= index + 1) {
return sortFun(index + 1)
}
}
// 根据排序规则进行排序
if (currentSort.orderState === 'ascending') {
return Number(a[currentSort.orderColumn]) - Number(b[currentSort.orderColumn])
} else {
return Number(b[currentSort.orderColumn]) - Number(a[currentSort.orderColumn])
}
}
// 排序递归方法
return sortFun(0)
})
console.log(array)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!