gpt4 book ai didi

javascript - 日期 Javascript 的唯一数组

转载 作者:数据小太阳 更新时间:2023-10-29 04:01:23 24 4
gpt4 key购买 nike

我看到这个问题经常被问到常规 javascript 数组,但是如果它是一个日期数组,似乎没有一个答案有效。

我可能会通过试错来解决这个问题,但如果我问的话,我确实看到了对其他人的一些好处。

基本上,如果您有一个日期可能有重复的 javascript 数组,并且需要过滤到一个没有重复的数组中,那么最好的方法是什么?

我已经尝试了 Array.from(new Set(arr)) 的 ES6 解决方案,但它只返回相同的数组。

我也试过了

Array.prototype.unique = function() {
var a = [];
for (var i=0, l=this.length; i<l; i++)
if (a.indexOf(this[i]) === -1)
a.push(this[i]);
return a;
}

均来自Unique values in an array

但是两者都不起作用,看起来 indexOf 不适用于日期对象。

这是我的数组是如何生成的 atm

//this is an array generated from ajax data, 
//its a year over year comparison with a separate year,
//so to create a reliable date objects I force it to use the same year.
data.map(d => {
dp = new Date(Date.parse(d.date + '-' + d.year));
dp.setFullYear(2000);
return dp;
})

大约有 100 天左右的不同,但最终总是有大约 350 个索引。

最佳答案

ES6 方式:

datesArray.filter((date, i, self) => 
self.findIndex(d => d.getTime() === date.getTime()) === i
)

感谢https://stackoverflow.com/a/36744732/3161291

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

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