2017-03-03 7 views
-1

Ich habe Probleme, diese herauszufinden. Ich möchte den Inhalt von 2 Arrays miteinander vergleichen. Wenn sie === sind, möchte ich die if-Anweisung ausführen, ansonsten die else-Anweisung. Das funktioniert soweit aber das if und else tritt auf und nicht nur 1 von ihnen.Probleme mit verschachtelten For-Loops haben

+1

Was meinen Sie beide auftreten und man nicht nur? Sagen Sie, dass beide in der gleichen Iteration der verschachtelten Schleife vorkommen (das sollte unmöglich sein)? –

+0

Sagen wir das Array a = ['Code', 'JS'] Array b = ['Code'] Das Ergebnis dieses Skripts ist jetzt: Code Code JS und nicht Code JS @DylanHamilton –

+0

Verwenden Sie Pause innerhalb jedes if und sonst Anweisungen –

Antwort

1

Ihre Gleichheitsprüfungen sind in Ordnung, das Problem kommt, weil Sie immer etwas auf der Else-Anweisung protokollieren.

console.clear(); 
 

 
const match = { 
 
    interests: [ 
 
    'Code', 
 
    'JS' 
 
    ], 
 
}; 
 

 
const user = { 
 
    interests: [ 
 
    'Code', 
 
    'Apples', 
 
    'Skiing' 
 
    ], 
 
}; 
 

 
const output = []; 
 

 
for (let i = 0; i < match.interests.length; i++) { 
 
    for (let j = 0; j < user.interests.length; j++) { 
 
    console.log('loop') 
 
    if (match.interests[i] === user.interests[j]) { 
 
     console.log('MATCH'); 
 
     output.push(match.interests[i]); 
 
    } else { 
 
     console.log('DOESN\'T MATCH'); 
 
     output.push(match.interests[i]); 
 
    } 
 
    } 
 
} 
 

 
console.log(output);

die Ausgabe des folgenden Codes anzeigen, müssen Sie entscheiden, welche Ausgabe Sie wollen, und passen Sie die Schlaufen entsprechend