gpt4 book ai didi

javascript - 如何检查JavaScript数组中是否存在一个值,继续加0.15直到不存在,然后将该值添加到数组末尾?

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

我有许多文本输入元素,其中包含人员轮类的开始时间(例如 9:00、9:30、10:00 等)。

我的代码将一个一个地遍历这些元素并将它们推送到一个数组中。如果该值已经存在于数组中,我需要将时间加上 15 分钟(0.15),然后再次检查它是否存在。这将一直持续到该值不存在,然后将其推送到数组。

例如:约翰 - 9:00账单 - 9:00朱莉 - 9:30山姆 - 9:30托尼 - 9:30

时间 = []

第一次是9:00,不及时,所以会加上。 Times 现在等于 [9]。下一个是 9:00,它确实存在,所以我加 0.15,得到不存在的 9.15,所以现在时间 = [9, 9.15]。这对所有元素都会继续。如果小数点等于 .60,那么我需要将小时加 1,因此对于托尼来说,加的时间将是 10。

我知道我可以只用一个 if 语句检查一次,但是我如何继续添加 15 并继续检查 2、3、4+ 次?

if( times.contains(value)) {
times.push(value + 0.15)
}

要这样做,我需要大量的 if 语句。如何反复检查,一添加就结束循环?

最佳答案

你可以拿一个Set并递增该值直到它不在集合中,然后映射该值。

此方法使用十进制值 15 分钟,即 0.25 一刻钟。

var times = [9, 9, 9.5, 9.5, 9.5],
adjusted = times.map((s => t => {
while (s.has(t)) {
t += 0.25;
}
s.add(t);
return t;
})(new Set));

console.log(adjusted);

关于javascript - 如何检查JavaScript数组中是否存在一个值,继续加0.15直到不存在,然后将该值添加到数组末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54397061/

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