假设有一个名为patients
的对象数组,每个对象包含患者的姓名和检查日期。可以按照检查日期从新到旧将所有患者的检查列表分组获取的解决方法如下:
// 示例患者数据
const patients = [
{ name: '张三', checkDate: '2021-06-10' },
{ name: '李四', checkDate: '2021-06-12' },
{ name: '王五', checkDate: '2021-06-11' },
// 更多患者...
];
// 按照检查日期从新到旧排序
patients.sort((a, b) => new Date(b.checkDate) - new Date(a.checkDate));
// 分组获取检查列表
const groupedChecklists = patients.reduce((groups, patient) => {
const checkDate = patient.checkDate;
if (!groups[checkDate]) {
groups[checkDate] = [];
}
groups[checkDate].push(patient.name);
return groups;
}, {});
// 打印分组后的检查列表
for (const checkDate in groupedChecklists) {
console.log(`${checkDate}: ${groupedChecklists[checkDate].join(', ')}`);
}
上述代码中,我们首先使用sort()
方法按照检查日期从新到旧对患者数组进行排序。然后,通过reduce()
方法将患者按照检查日期分组,将每个检查日期作为键,将对应的患者姓名添加到数组中。最后,使用循环遍历每个检查日期的分组,并打印出分组后的检查列表。
请注意,上述代码中的日期字符串必须符合ISO 8601标准(例如'YYYY-MM-DD'),以便正确排序。如果日期格式不一致,可能需要使用适当的日期解析函数进行转换。
上一篇:按照检查多个空值进行排序
下一篇:按照键的第二个元素排序字典