如果对此有一个简单的答案,我会提前道歉,我的借口是我病了,现在不能直截了当!
基本上,我有一个元素数组,它们对应于具有2个手柄的范围滑块,基本上是2个范围滑块重叠。
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
[0] [1] [2] [3] [4] [5] [6]
x x
我们将星期几的索引传递给函数,当然它是0-6。
我想做的是单击一周中的某一天,然后获取哪个范围(最小/最大)滑块更接近该值。因此,使用上面的示例,单击星期四意味着右边的 x 更近。
点击星期二意味着第一个 x 越来越近,因此我可以相应地更改相应的数据。
没有显示任何代码,因为它实际上并没有帮助,因为这更多的是数学问题。
谢谢。
答案 0 :(得分:2)
如果left
和right
是从0到6的整数,代表X出现的天数,而day
是单击的天数:
function nearestDate(left, right, day) {
const compare = (day - left) - (right - day);
if (compare === 0) {
// they're equidistant;
} else if (compare < 0) {
// left one's closer
} else {
// right one's closer
}
}