我在解决这个问题时遇到了问题。我的想法是我有一组我正在考虑时间的值,我需要删除与特定时间重叠的所有值:
var availableTimes = ['0 - 0.5', '0.5 - 1', '1 - 1.5', '1.5 -2', '2 - 2.5', '2.5 -3']
var timeToRemove = '0.5 - 2'
我可以完全控制数组的外观,但这就是我的想法。我不知道如何构建我的可用时间数组和我的 timeToRemove
以便完成此操作。我使用的是 24:00 时钟,所以 1 - 1.5
是凌晨 1:00 到凌晨 1:30。
关于构建它的最佳方法有什么想法吗?
最佳答案
我更喜欢面向对象的方式:
(1) 构造一个包含以下结构的对象的数组:
{
StartTime:[fload],
EndTime:[fload]
}
所以你的时间数组看起来像这样
var availableTimes=
[
{StartTime:0,EndTime:0.5},
{...}
];
(2) 待移除时间结构相同:
var timeToRemove = '0.5 - 2';
=>
var timeToRemove={StartTime:0.5,EndTime:2};
(3) 删除算法如下:
for (var i=0;i<availableTimes.length;i++)
{
if(availableTimes[i].StartTime > timeToRemove.StartTime
&& availableTimes[i].EndTime < timeToRemove.EndTime)
availableTimes[i]=null; //perform deletion
}
关于Javascript - 从数组中删除值 - 构造时间数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066116/