当前位置: 首页 > news >正文

数组对象 按照对象中的某个字段排序

在JavaScript中,可以使用数组的sort()方法按照对象中的某个字段对数组进行排序。

按照对象中的某个字段对数组进行排序:
基本排序方法
升序排序

const array = [{ name: 'John', age: 25 },{ name: 'Jane', age: 21 },{ name: 'Bob', age: 30 }
];// 按照age字段升序排序
array.sort((a, b) => a.age - b.age);console.log(array);
/*
输出:
[{ name: 'Jane', age: 21 },{ name: 'John', age: 25 },{ name: 'Bob', age: 30 }
]
*/

降序排序

// 按照age字段降序排序
array.sort((a, b) => b.age - a.age);console.log(array);
/*
输出:
[{ name: 'Bob', age: 30 },{ name: 'John', age: 25 },{ name: 'Jane', age: 21 }
]
*/

按照对象中的某个字符串字段对数组进行排序:

const array = [{ name: 'John', age: 25 },{ name: 'Jane', age: 21 },{ name: 'Bob', age: 30 },{ name: 'Alice', age: 28 }
];// 按照name字段升序排序  字母排序
array.sort((a, b) => a.name.localeCompare(b.name));console.log(array);
/*
输出:
[{ name: 'Alice', age: 28 },{ name: 'Bob', age: 30 },{ name: 'Jane', age: 21 },{ name: 'John', age: 25 }
]
*/

按照对象中的时间字段对数组进行排序

const array = [{ name: 'Event 1', date: '2023-10-15' },{ name: 'Event 2', date: '2023-09-20' },{ name: 'Event 3', date: '2023-11-05' }
];

升序排序(从早到晚)

array.sort((a, b) => new Date(a.date) - new Date(b.date));console.log(array);
/*
输出:
[{ name: 'Event 2', date: '2023-09-20' },{ name: 'Event 1', date: '2023-10-15' },{ name: 'Event 3', date: '2023-11-05' }
]
*/

降序排序(从晚到早)

array.sort((a, b) => new Date(b.date) - new Date(a.date));console.log(array);
/*
输出:
[{ name: 'Event 3', date: '2023-11-05' },{ name: 'Event 1', date: '2023-10-15' },{ name: 'Event 2', date: '2023-09-20' }
]
*/

处理不同日期格式
如果你的日期格式不是ISO标准格式(YYYY-MM-DD),你需要确保new Date()能够正确解析你的日期字符串。例如:

const array = [{ name: 'Event 1', date: '15/10/2023' }, // DD/MM/YYYY{ name: 'Event 2', date: '20/09/2023' },{ name: 'Event 3', date: '05/11/2023' }
];// 自定义解析函数
function parseCustomDate(dateStr) {const [day, month, year] = dateStr.split('/');return new Date(year, month - 1, day); // 月份从0开始
}array.sort((a, b) => parseCustomDate(a.date) - parseCustomDate(b.date));console.log(array);
http://www.xdnf.cn/news/407575.html

相关文章:

  • 《Python星球日记》 第59天:生成对抗网络(GAN)
  • labview硬件采集<2>——使用布尔控件控制硬件的LED
  • java----------->代理模式
  • Python爬虫实战:研究ajax异步渲染加密
  • 全球变暖-bfs
  • 健康养生指南:解锁活力生活的科学密码
  • NY115NY121美光科技芯片NY122NY130
  • 物联网驱动的共享充电站系统:智能充电的实现原理与技术解析!
  • hiveserver2与beeline进行远程连接hive配置及遇到的问题
  • Web 架构之故障自愈方案
  • langchain4j集成QWen、Redis聊天记忆持久化
  • 【android bluetooth 案例分析 03】【PTS 测试 】【PBAP/PCE/SGSIT/SERR/BV-01-C】
  • 右值和移动
  • 部署Superset BI(六)Superset 的主机安装
  • 文件上传总结
  • Redis——达人探店
  • CSS3 遮罩
  • HTML5 中实现盒子水平垂直居中的方法
  • 【启动盘制作】macbook 制作windows启动盘,重装 Windows 的详细教程
  • C++:公有,保护及私有继承
  • 数据结构-树(1)
  • 硬件设备基础
  • 豆瓣电影Top250数据工程实践:从爬虫到智能存储的技术演进(含完整代码)
  • Mysql使用PXC实现高可用
  • js 字符串中的特殊字符全部替换成定义对象里面key对应的value值(进阶篇)
  • Python60日基础学习打卡D12【虫豸版】
  • 如何使用 React Hooks 替代类组件的生命周期方法?
  • Linux服务器连接SSH工具FinalShell安装使用支持Linux文件上传下载
  • (自用)Java学习-5.8(总结,springboot)
  • 【合新通信】无人机天线拉远RFOF(射频光纤传输)解决方案