javascript - 具有日期升序的Javascript数组过滤器并删除重复项
问题描述
years = [ Date, Date, Date ]
// This gets date ascending order but not sure how can i remove duplicate
this.years.sort(function(a, b) {
let dateA:any = new Date(a);
let dateB:any = new Date(b);
return (dateA - dateB);
});
console.log( this.years );
这个排序函数中如何去除重复的日期,还是需要单独写?这个脚本标准吗?
解决方案
排序时无法删除项目,因为排序功能只是移动索引。我建议您首先获取唯一元素,以便排序的结果数组更小,并且您不对将被删除的元素进行排序。
请看一下这个答案以获得独特的价值:
const dates = [Date, Date, Date];
const uniqueDates = dates.filter((date, i, self) =>
self.findIndex(d => d.getTime() === date.getTime()) === i
)
在那之后:
const uniqueDatesSorted = uniqueDates.sort((a, b) => a -b)
希望能帮助到你!
推荐阅读
- javascript - if/else 提取英国邮政编码的一部分
- c - 如何编写一个运行程序的 bash 脚本,直到它检测到信号 SIGSEGV、分段错误?
- sql-server - 有没有办法在 SQL Server 中查找公共列的值?
- powershell - Powershell 函数返回一个无效对象
- java - 需要一个微服务框架
- javascript - 打字稿可以推断出一个参数已经过验证吗?
- python - 在更新值时扩展 numpy 数组
- discord.js - Discord.js 中的变量开关定义?
- typescript - 当我在 vue.js 中 npm runbuild 得到错误接口 'NodeRequire' 不能同时扩展类型 'Require'
- python - 如何使用 PyTorch 在语义分割中获得前 k 个精度?