2017-02-13 30 views
2

我有兩個數組相交兩個元素,如下所示。通常情況下這個功能應該寫爲A,B,Y但它代表所有值lista.length * listb.length使用嵌套的數組表示問題

<script> 
    window.onload = function(){  
     var lista = []; 
     lista[0] = "A"; 
     lista[1] = "B"; 
     lista[2] = "Y"; 

     var listb = []; 
     listb[0] = "A"; 
     listb[1] = "B"; 

     for(var i=0; i<lista.length; i++){ 
      for(var j=0; j<listb.length; j++){ 
       if(listb[j] == lista[i]){ 
        document.write(listb[j] + "<br/>"); 
       }else{ 
        document.write(lista[i] + "<br/>");     
       }    
      } 
     } 
    } 
</script> 

回答

2

你可以打印外環

window.onload = function() { 
 
    var lista = ["A", "B", "Y"], 
 
     listb = ["A", "B"]; 
 

 
    for (var i = 0; i < lista.length; i++) { 
 
     document.write(lista[i]); 
 
     for (var j = 0; j < listb.length; j++) { 
 
      if (listb[j] == lista[i]) { 
 
       document.write(" common"); 
 
       break; 
 
      } 
 
     } 
 
     document.write("<br/>"); 
 
    } 
 
}

的唯一元素
2

您需要等到內循環結束時才知道您是否找到了匹配項,而不是爲每個不匹配的元素打印lista[i]

for(var i=0; i<lista.length; i++){ 
     for(var j=0; j<listb.length; j++){ 
      var found = false; 
      if(listb[j] == lista[i]){ 
       document.write(listb[j] + "<br/>"); 
       found = true; 
       break; 
      } 
      if (!found){ 
       document.write(lista[i] + "<br/>");        
      } 
     } 
    } 
1

試試這個

<script> 
 
     window.onload = function(){  
 
      var lista = []; 
 
      lista[0] = "A"; 
 
      lista[1] = "B"; 
 
      lista[2] = "Y"; 
 
    
 
      var listb = []; 
 
      listb[0] = "A"; 
 
      listb[1] = "B"; 
 
    
 
      for(var i=0; i<lista.length; i++){ 
 
      for(var j=0; j<listb.length; j++){ 
 
       if(lista[i] == listb[j]){ 
 
       document.write(listb[j] + "<br/>"); 
 
       break 
 
       }else{ 
 
       document.write(lista[i] + "<br/>");     
 
       break 
 
       }    
 
      } 
 
      } 
 
     } 
 

 
    </script>