一、遇到的情况
需要对数组进行排序,按属性1,属性2,属性3。。。的优先级进行升序或降序
二、 解决方法
采用js中数据的sort排序方法,
const arr = [需要排序的数据内容]
arr.sort(this.compareType('属性名', '属性名1', '属性名2', '属性名3', '升序用up降序用down'))
//compareType是定义好的函数
自定义排序函数 compareType(目前仅实现4属性顺位排序,可自行删除或增加)
compareType(propertyName, propertyName1, propertyName2, propertyName3, str) { if (str === 'down') { // 降序的 return function(a, b) { if (b[propertyName] === a[propertyName]) { // 第一顺位相同时,找第2顺位 if (b[propertyName1] === a[propertyName1]) { // 第二顺位相同时,找第3顺位 if (b[propertyName2] === a[propertyName2]) { // 第三顺位相同时,找第4顺位 return b[propertyName3] - a[propertyName3] } else { return b[propertyName2] - a[propertyName2] } } else { return b[propertyName1] - a[propertyName1] } } else { return b[propertyName] - a[propertyName] } } } else { // 升序的 return function(b, a) { if (b[propertyName] === a[propertyName]) { // 第一顺位相同时,找第2顺位 if (b[propertyName1] === a[propertyName1]) { // 第二顺位相同时,找第3顺位 if (b[propertyName2] === a[propertyName2]) { // 第三顺位相同时,找第4顺位 return b[propertyName3] - a[propertyName3] } else { return b[propertyName2] - a[propertyName2] } } else { return b[propertyName1] - a[propertyName1] } } else { return b[propertyName] - a[propertyName] } } } }
ps: 偶尔更新一下,如有错误,还请指正
分类:
小知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!