用于循环的 Javascript 来检查间隔重叠
Javascript for loops to check interval overlap
我有以下javascript函数(感谢Nina Scholz)。
function overlapping(a, b) {
function getMinutes(s) {
var p = s.split(':').map(Number);
return p[0] * 60 + p[1];
}
return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);
}
我现在的问题是我有例如 4 个间隔:
var myArray = [{ start: '01:00', end: '04:00' }
{ start: '05:00', end: '08:00' }
{ start: '07:00', end: '11:00' }
{ start: '09:30', end: '18:00' }]
现在我将检查是否有任何间隔与另一个间隔重叠。
var overlap = false;
for(var n = 0; n < myArray.length; n++) {
for(var i = 0; i < n; i++) {
var result = overlapping(myArray[n], myArray[i]);
if(result == true) {
overlap = result;
break;
}
}
}
我现在的问题是这是否正确,或者是否有更好的方法可以做到这一点?
求婚女巫会根据其他元素检查数组的所有元素。如果找到重叠,迭代将停止并返回true
。否则false
.
function overlapping(a, b) {
function getMinutes(s) {
var p = s.split(':').map(Number);
return p[0] * 60 + p[1];
}
return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);
}
function isOverlapping(array) {
var i, j;
for (i = 0; i < array.length - 1; i++) {
for (j = i + 1; j < array.length; j++) {
document.write('test ' + i + ' vs ' + j + '<br>');
if (overlapping(array[i], array[j])) {
return true;
}
}
}
return false;
}
var myArray = [{ start: '01:00', end: '04:00' }, { start: '05:00', end: '08:00' }, { start: '07:00', end: '11:00' }, { start: '09:30', end: '18:00' }];
document.write(isOverlapping(myArray));
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 递归使用 eval() 是检查程序执行的好方法吗?
- 检查onsubmit doenst work jquery contactform上的函数
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- API密钥使用和检查示例
- 如何让程序检查所选单词中是否有按键
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 用于循环的 Javascript 来检查间隔重叠
- Javascript 检查范围是否重叠
- 检查两个或多个 DOM 元素是否重叠
- jQuery/Javascript检查文本重叠
- 如何检查给定的非凸区域是否与给定矩形完全重叠
- JavaScript 检查时间范围是否重叠
- MVC5 - 检查用于搜索日期字段的 2 个日期(文本框)之间的重叠
- 检查时间范围是否重叠,如果为真则触发错误
- 实现在Javascript中检查重叠间隔的算法