ui->statusBar->addPermanentWidget(ui->label1, 1);
如何在此排序函数中删除重复的日期,还是我需要单独写?和这个脚本是标准的吗?
答案 0 :(得分:1)
由于排序功能只能移动索引,因此无法在排序时删除项目。我建议您首先获取唯一的元素,以使要排序的结果数组较小,并且不要对将要删除的元素进行排序。
请查看this answer以获取唯一值:
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)
希望有帮助!
答案 1 :(得分:0)
好吧,sort
无法删除重复项,因此在我的解决方案中,我先使用map
和filter
删除了重复项,然后应用排序。
let myArray = [new Date(2019, 06, 28), new Date(2019, 07, 28), new Date(2019, 06, 28), new Date(2019, 07, 14), new Date(2019, 07, 01), new Date(2019, 07, 16), new Date(2019, 07, 14)]
let unique = myArray.map((date) => +date)
.filter((date, i, array) => array.indexOf(date) === i)
.map((time) => new Date(time));
unique.sort((a, b) => a - b);
console.log(unique)