2017-02-13 8 views
2

Ich habe zwei Array, die zwei Elemente schneiden, wie Sie unten sehen. Normalerweise sollte diese Funktion als A, B, Y schreiben, aber es stellt alle Wert lista.length * listb.lengthJavascript geschachtelt für Array darstellen Problem

<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> 

Antwort

2

Sie nur das Element der äußeren Schleife drucken konnten

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

Sie müssen bis zum Ende der inneren Schleife warten, um zu wissen, ob Sie eine Übereinstimmung gefunden haben oder nicht, nicht lista[i] für jedes nicht passende Element drucken.

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

Versuchen Sie, diese

<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>

Verwandte Themen