Javascript Uncaught TypeError: Cannot read property '0' of undefined

Ich weiß, es gibt viele Fragen im Zusammenhang mit diesem Fehler und ich habe die meisten von Ihnen, und keiner mir helfen, mein Problem. (Das scheint so einfach zu Debuggen...)

Ich habe ein array (das leer ist aat zuerst):

var words = [];

Und meine Funktion hasLetter, prüft, ob wir finden einen Brief (Objekt) im array (die ich hier nennen: d) Worte.

function hasLetter(letter,d){

//if words[0] not null should return object of letter "a", here we getting
//the index of the letter (since ascii of "a" is 97, I substract 97)
var ascii = letter.charCodeAt(0)-97;

//Trying to not get an error with this but still creates an err
if(typeof d[ascii ] !== "undefined" && d[ascii ] !== null && d[ascii ].length > 0){
    if(d[ascii].letter == letter){
        return true;
    }
}
return false; }

und ich haben eine Funktion namens addLetter, das prüft, ob hasLetter gibt true oder false zurück und dann schafft oder nicht, entsprechend einem neuen Knoten.

function addLetter(letter,d){
var ascii = letter.charCodeAt(0)-97;
if(!hasLetter(letter,d)){
    document.write("This letter" + letter + " hasn't been found in words.");
    d[ascii] = new Node(letter);
}
    document.write("This letter " + letter + " already exists in words.");
    document.write(d[ascii].letter);

}

und wenn ich test:

addLetter("a",words);

gibt es:

Uncaught TypeError: Cannot read property '0' of undefined

Ich weiß nicht, was zu tun ist, zu sagen "wenn es undefiniert, dann schauen Sie nicht in es oder etwas entlang jenen Linien...

Dank

  • Wenn Sie möchten, finden Sie einen Brief in der Reihe, dann die Wörter.indexOf(Buchstabe) > 0) zurückgeben wird, ob der Buchstabe vorhanden ist oder nicht.
  • Sie können nicht hasLetter("a",words[]); werden sollte hasLetter("a",words);
  • Nein ist es nicht.
  • Welchen browser verwenden Sie?
InformationsquelleAutor Greg Uptron | 2015-04-03
Schreibe einen Kommentar