日期:2014-05-17  浏览次数:21010 次

JS怎么判断多个对象相等
因为在做合并单据功能,可能有多张单据(十张以上)需要进行判断后才能合并,1.选择的所有单据的单据状态必须相同,2.它们的单据类型相同,3.单号相同,4.收货方与发货方相同
 我写的JS如下,但是只能判断两个,用户选择了三张单据,其中两张符合合并条件,一张不符合,就判断不出来了
 希望高手帮我看下代码:
 
var array = jQuery('#dataTable').datagrid('getSelections');
 if (array.length <= 1) {
 jQuery.messager.alert("警告", "请选择您要合并的单据!", "warning");
 return;
 }
 var isflag = true;
 for ( var i = 0; i < array.length; i++) {
 for ( var j = i + 1; j < array.length; j++) {
 if (array[i].orig == array[j].orig
 && array[i].dest == array[j].dest
 && array[i].opStatus == array[j].opStatus
 && array[i].informId == array[j].informId
 && array[i].billtype == array[j].billtype) {
 isflag = false;
 break;
 }
 }
 }
 if (isflag == true) {
 jQuery.messager.alert("警告",
       "<br>选择合并的多张单据必须符合以下条件才能进行合并:
       <br>1.单据状态相同;
               <br>2.单据类型相同;
       <br>3.外协通知单号相同;
       <br>4.收货方与发货方相同。","warning")
 }else {
 alert("条件符合,可以合并");
 }
 
jquery web java

------解决方案--------------------
var array = jQuery('#dataTable').datagrid('getSelections');
 if (array.length <= 1) {
 jQuery.messager.alert("警告", "请选择您要合并的单据!", "warning");
 return;
 }
 var isflag = true;
 for ( var i = 0; i < array.length; i++) {
 for ( var j = i + 1; j < array.length; j++) {
 if (array[i].orig == array[j].orig
 && array[i].dest == array[j].dest
 && array[i].opStatus == array[j].opStatus
 && array[i].informId == array[j].informId
 && array[i].billtype == array[j].billtype) {
 isflag = false;
  }else{
 isflag = true;
 
}
 }
if(isflag==true){
  break;
}
 }
 if (isflag == true) {
 jQuery.messager.alert("警告",
       "<br>选择合并的多张单据必须符合以下条件才能进行合并:
       <br>1.单据状态相同;
               <br>2.单据类型相同;
       <br>3.外协通知单号相同;
       <br>4.收货方与发货方相同。","warning")
 }else {
 alert("条件符合,可以合并");
 }