判断行之间是否存在重叠 一个表格有两列:第一列是开始数,第二列是结束数,有什么办法判断用户录入的数据是否有误,如果各行之间存在交叉重叠,则报错:如下就有错,因为第1行和第2行存在重叠。Start End1 102 1112 15如下则是正确的:Start End1 1011 1520 50 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var a = [1,2,12];var b = [10,11,15];for(var i = 0 ; i < a.length-1; i ++){ if(a[i]+b[i+1]==a[i+1]+b[i]) { alert("有错误"); }}将start列的值放入数组 a中将end列的值放数数组b中就可以验证了啊 思路很好,但还是有缺陷,如Start End1 104 1112 15这种情况也是有问题,但按上述方式是检查不出来的。 var ar = [[1,10],[4,11],[12,15]];var FLAG = false;OUTERMOST:for(var i = 1; i < ar.length; i ++) { for(var j = 0; j < i; j ++) { if (ar[i][0] >= ar[j][0] && ar[i][0] <= ar[j][1]) { FLAG = true; break OUTERMOST; } }}if (FLAG) alert('输入数据非法');else alert('数据合法!'); var arr = [1,4,10,11,12,15] for(var i = 0; i < arr.length-1 ; i++){ if(arr[i] > arr[i+1]){alert("不对"); } }这样行么 ? <script type="text/javascript">var ar = [[10,100],[90,150],[160,180]];var FLAG = false;OUTERMOST:for(var i = 1; i < ar.length; i ++) { for(var j = 0; j < i; j ++) { if (ar[i][0] >= ar[j][0] && ar[i][0] <= ar[j][1]) { FLAG = true; break OUTERMOST; } else if(ar[i][0] <= ar[j][0] && ar[i][1] >= ar[j][0]) { FLAG = true; break OUTERMOST; } }}if (FLAG) alert('输入数据非法');else alert('数据合法!');</script> 结合插入排序法,一边排序一边比较var arr = [[1,10],[11,20],[21,30],[13,25]];for (i=1; i<arr.length; i++){ tmp = arr[i]; for (j=i; j>0 && arr[j-1][1] > tmp[1]; j--) { if ( arr[j-1][1] > tmp[0] ) { alert('Err:'+tmp); return; } arr[j]=arr[j-1]; arr[j-1]=tmp; }} 刚刚思维不够严谨,有bug,修正一下:var arr = [[1,10],[11,20],[13,25],[21,30]];for (i=1; i<arr.length; i++){ tmp = arr[i]; for (j=i; j>0; j--) { if ( arr[j-1][1] > tmp[0] ) { alert('Err:'+tmp); return; } if (arr[j-1][1] < tmp[1]) break; arr[j]=arr[j-1]; arr[j-1]=tmp; }} 怎么让页面打开后自动刷新一个层 js表单验证插件 myeclipse 7.0不能找到ext.jsb2 教你如何正确加载JS文件 如何在xhtml1.0标准下,table中某几个tr设定固定高度,一个tr是自适应的高度? 急救:在线等待,注册页面中,判断table是否显示,然后再验证里面的控件是否填写正确。 请高手帮忙:客户端使用xmlHttp的权限问题 请各位大哥帮忙看看这段代码 有关iframe的打印问题!急!!!请各位帮忙!!!! To:nik_Amis(Azrael)在HTML页中播放媒体文件时如何全屏播放? 这个树状菜单怎么来切换? 脚本的调用
var b = [10,11,15];
for(var i = 0 ; i < a.length-1; i ++)
{
if(a[i]+b[i+1]==a[i+1]+b[i])
{
alert("有错误");
}
}
将start列的值放入数组 a中
将end列的值放数数组b中就可以验证了啊
如
Start End
1 10
4 11
12 15
这种情况也是有问题,但按上述方式是检查不出来的。
var FLAG = false;
OUTERMOST:
for(var i = 1; i < ar.length; i ++) {
for(var j = 0; j < i; j ++) {
if (ar[i][0] >= ar[j][0] && ar[i][0] <= ar[j][1]) {
FLAG = true;
break OUTERMOST;
}
}
}
if (FLAG) alert('输入数据非法');
else alert('数据合法!');
var arr = [1,4,10,11,12,15]
for(var i = 0; i < arr.length-1 ; i++){
if(arr[i] > arr[i+1]){alert("不对"); }
}这样行么 ?
<script type="text/javascript">
var ar = [[10,100],[90,150],[160,180]];
var FLAG = false;
OUTERMOST:
for(var i = 1; i < ar.length; i ++) {
for(var j = 0; j < i; j ++) {
if (ar[i][0] >= ar[j][0] && ar[i][0] <= ar[j][1]) {
FLAG = true;
break OUTERMOST;
}
else if(ar[i][0] <= ar[j][0] && ar[i][1] >= ar[j][0]) {
FLAG = true;
break OUTERMOST;
}
}
}
if (FLAG) alert('输入数据非法');
else alert('数据合法!');
</script>
for (i=1; i<arr.length; i++){
tmp = arr[i];
for (j=i; j>0 && arr[j-1][1] > tmp[1]; j--) {
if ( arr[j-1][1] > tmp[0] ) {
alert('Err:'+tmp);
return;
}
arr[j]=arr[j-1];
arr[j-1]=tmp;
}
}
for (i=1; i<arr.length; i++){
tmp = arr[i];
for (j=i; j>0; j--) {
if ( arr[j-1][1] > tmp[0] ) {
alert('Err:'+tmp);
return;
}
if (arr[j-1][1] < tmp[1]) break;
arr[j]=arr[j-1];
arr[j-1]=tmp;
}
}