2017-01-04 2 views
0

Aus irgendeinem Grund ist mein Funktionsparameter 'string' definiert, bis er die Methode 'indexOf' erreicht, und plötzlich meldet die Konsole ihn als undefiniert. Es funktioniert gut im Rest der Aussage, ich verstehe es einfach nicht. Jede Hilfe wäre willkommen.Mein Parameter ist plötzlich nicht in 'indexOf' definiert.

function checkRoomForItem(string) { 
 
\t for (let i = 0; i < db[0].rooms[roomLoc].roomInvent.length; i++){ 
 
\t \t if (db[0].rooms[roomLoc].roomInvent[i] === string) { 
 
\t \t \t console.log("String is " + string); 
 
\t \t \t inventory.push(string); 
 
\t \t \t db[0].rooms[roomLoc].roomInvent.pop(db[0].rooms[roomLoc].roomInvent.indexOf(string)); 
 
\t \t }; 
 
\t }; 
 
\t displayOut(); 
 
\t teleTyperOutBox("you get " + string); 
 
}

+0

wird 'string' irgendwo referenziert, dann an' checkRoomForItem' übergeben und dann in 'displayOut()' geändert? – briosheje

+0

Es ist nur der Parametername, den ich verwendet habe, wenn das das ist, was du meinst, und nirgendwo anders erscheint. Die eingegebene Zeichenfolge wird auf dem Weg durch mehrere Funktionen unterteilt, aber an dieser Stelle ist es nur ein Wort als Zeichenfolge. Wenn du das meinst, bin ich ein bisschen noob. – Cuckoo

+0

Haben Sie irgendwo eine globale Variable namens 'string' definiert? – briosheje

Antwort

0

das Problem Fand heraus, war ich mit 'Pop' falsch, ich brauchte 'Splice' zu verwenden.

Verwandte Themen