gpt4 book ai didi

javascript - 数组过滤元素彼此的值太接近

转载 作者:行者123 更新时间:2023-11-30 07:20:37 25 4
gpt4 key购买 nike

我有以下内容

    var dates = [
"2017-09-11 13:30:45",
"2017-09-11 14:20:00",
"2017-09-11 15:00:00"
]

我想删除中间日期,因为它与前一个日期太近(不到一小时)。移除后,第三个应该留在那里,因为它与前一个不太接近(现在应该是第一个)

我知道如何转换日期,我知道如何制作一个基本的 for 循环来查找要删除的日期,我知道如何删除它。

我的问题是:有没有一种类轮可以为我解决这个问题?我正在浏览 lodash 但找不到任何内容

说明:

数组总是有序的。该函数应根据前一个元素验证当前元素。如果当前一个被移除,下一个元素应该与被移除的相同元素进行比较

最佳答案

不是单行,但也不长:

let lastDate = null;
dates = dates.filter(date => {
date = parseDate(date);
if (!lastDate || date - lastDate >= ONE_HOUR) {
lastDate = date;
return true;
}
});

let dates = [
"2017-09-11 13:30:45",
"2017-09-11 14:20:00",
"2017-09-11 15:00:00"
];
const ONE_HOUR = 1000 * 60 * 60;
let lastDate = null;
dates = dates.filter(date => {
date = parseDate(date);
if (!lastDate || date - lastDate >= ONE_HOUR) {
lastDate = date;
return true;
}
});
console.log(dates);

function parseDate(s) {
return Date.parse(s.replace(' ', 'T'));
}

关于javascript - 数组过滤元素彼此的值太接近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428149/

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