gpt4 book ai didi

javascript - 从日期数组返回唯一日期数组

转载 作者:行者123 更新时间:2023-11-30 15:19:04 25 4
gpt4 key购买 nike

在我们的 angularjs 应用程序中,我们收到一个日期数组,然后需要将其过滤掉以仅返回一个包含唯一日期(而非字符串)的数组。我在 SO 上尝试了一些答案,但我认为因为我比较的是日期而不是字符串 - 我产生了不同的结果。关于最佳方法的任何帮助都会非常有帮助。 enter image description here

最佳答案

你是对的,日期相等不同于字符串相等。日期是对象,对象的 === 比较器通过引用而不是值来比较它们。由于 JS 中的 {} === {}false,因此两个 Date 永远不会相等。所以,让我们把日期变成数字:

let dates = [new Date(), new Date('1/1/11'), new Date('1/1/11'), new Date('1/4/66')]


let uniqueDates = dates
.map(s => s.getTime())
.filter((s, i, a) => a.indexOf(s) == i)
.map(s => new Date(s));

console.log(uniqueDates);

indexOf 的逻辑是每个唯一值应该只出现在它自己的位置;其他的都是重复项(s 是当前项,i 是当前索引,a 是数组本身)。然后我们将数组映射回 Dates 并返回它。

关于javascript - 从日期数组返回唯一日期数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com