2017-12-09 2 views
0

Ich versuche, eine Funktion zu vergleichen, Objekte in einem Array zu haben und sehen, ob sie die gleicheVergleich zweier Array-Objekte

function alexareturn(alexaword, wordlist) { 
    var rhyme = false 
    console.log(alexaword + wordlist); 
    for (var i = 0; i <= alexaword.length; i++) { 
    for (var j = 0; j <= wordlist.length; j++) { 
     if (alexaword[i].indexOf(wordlist[j]) > -1) { 
     rhyme = true; 
     break; 
     } 
    } 
    } 
    if (rhyme) { 
    return true; 
    } else { 
    return false; 
    } 
} 

Meine Konsole ist der Rückkehr zwei richtige Arrays sind jedoch bin ich den Fehler bekommen kann indexOf nicht lesen (nicht definiert). Wenn ich die Konsole bekomme, um vorher ein richtiges Array zurückzugeben, wie kann einer von ihnen undefiniert sein?

Ich möchte nur meine Funktion aufrufen, und habe es wahr, wenn es eine Übereinstimmung der beiden Arrays gibt, Vielen Dank für Ihre Hilfe!

+2

Das wird durch Ihre Loops bedingt. '.. <= ..',' array [array.length] 'ist immer' undefiniert'. – Titus

+0

Können Sie uns zeigen, wie Sie die Funktion aufrufen? – leaf

Antwort

0

Ihre äußere for-Schleife läuft von 0 - alexaword.length (inklusive). In der letzten Iteration wäre alexaword [i] undefiniert.

for (var i = 0; i < alexaword.length; i++) würde es beheben.

+1

Beide Schleifen haben dieses Problem. – Titus