当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何根据日期字符进行串排序?

田化
2023-10-11
const arr = [    {        name: 'AAA',        date: '2023/02/03'    },    {        name: 'BBB',        date: '2023/03/05'    },    {        name: 'CCC',        date: '2022/02/07'    }];console.log(    // 需要输出arr里的对象, 按照date排序);

共有5个答案

墨宜人
2023-10-11
const result = arr.sort((a, b) => new Date(b.date) - new Date(a.date));console.log(result);
狄兴业
2023-10-11
const arr = [    {        name: 'AAA',        date: '2023/02/03'    },    {        name: 'BBB',        date: '2023/03/05'    },    {        name: 'CCC',        date: '2022/02/07'    }];arr.sort((a, b) => new Date(a.date) - new Date(b.date));console.log(arr);
荆煌
2023-10-11

封装了一个函数,默认是升序

const arr = [    {        name: 'AAA',        date: '2023/02/03'    },    {        name: 'BBB',        date: '2023/03/05'    },    {        name: 'CCC',        date: '2022/02/07'    }];function sortByDate(arr, order = 'asc') {    return arr.sort((a, b) => {        const dateA = new Date(a.date);        const dateB = new Date(b.date);        if (order === 'asc') {            return dateA - dateB;        } else if (order === 'desc') {            return dateB - dateA;        } else {            throw new Error("Order must be 'asc' or 'desc'");        }    });}// 示例使用:const sortedAsc = sortByDate(arr);  // 不传第2个参数,默认为升序console.log(sortedAsc);const sortedDesc = sortByDate(arr, 'desc');  // 降序console.log(sortedDesc);
戚森
2023-10-11

arr.sort((a,b) => a.date.replace(/\//g,'')-b.date.replace(/\//g,''))
arr.sort((a,b) => new Date(a.date)-new Date(b.date))

缪宪
2023-10-11
arr.sort((a, b) => {    const dateA = new Date(a.date);    const dateB = new Date(b.date);    return dateA - dateB;});

使用Array.sort()方法,比较函数接收两个参数a和b,将对象的date属性转换为Date对象,并通过减法运算符进行比较,以确定排序顺序

 类似资料:
  • 问题内容: 我试图根据键中的日期对此HashMap进行排序 我的哈希图: 问题答案: 使用代替。正如已经实现的那样,它将在插入时自动排序。 或者,如果您有一个现有的并且想要基于它创建一个,则将其传递给构造函数: 也可以看看: Java教程-地图实现 Java教程-对象排序

  • 因此,我正在研究如何用javascript中的字符串进行日期比较,我发现大量堆栈溢出的帖子说你不能这样做。 参考: 如何在JavaScript中比较两个字符串日期? 用JavaScript比较两个日期 然而,下面的代码本与您所期望的完全一样,只使用字符串,当其中一个是YYYY-MM-DD而另一个是yyyy/mm/dd时,它甚至可以工作。有谁能解释一下为什么这样做,为什么stack overflow

  • 我有一个事务类,其中有到达日期、离开日期等变量,我不确定如何定义日期数据类型,因此必须根据开始日期对事务信息进行排序。

  • 问题内容: 我有一个日期字符串的任意列表(mm-yyyy),如下所示: 我需要此列表首先按年(升序)级别排序,然后按月(升序)级别排序..以便逻辑顺序可以是: 我该如何实现? 问题答案: 尝试这个:

  • 问题内容: 我正在尝试根据创建日期读取最新的10个文件。 我尝试了此代码,但是它不能用,我的意思是,每当我添加新文件时,它都不会在输出中显示新文件名。 我什至尝试了apache commons io,但这也不起作用(这意味着在该目录中创建新文件时,不显示新文件) 这是我的Apache Commons io版本 问题答案: 尝试翻转比较顺序: 这对我来说仅适用于本地测试。

  • 问题内容: 我在排序包含整数的字符串时遇到问题。如果使用下面的代码,我将进行排序:1some,2some,20some,21some,3some,一些 但是我希望将其排序为:1some,2some,3some,20some,21some,一些 我怎样才能做到这一点? 谢谢! 问题答案: 这是有关如何执行此操作的独立示例(未特别优化): 输出量 说明 该示例使用一个常数来推断数字是否位于的起始位置。