2016-07-31 22 views
1

Ich möchte einige Benutzereingaben nehmen und sie verwenden, um ein bestimmtes Objekt in einem Array zu finden. Aber wenn ich es mit dem folgenden Code versuche, bekomme ich einen undefinierten Fehler. Was mache ich falsch?Wie verwende ich eine Variable, um ein Element in einem Array zu finden?

function findNextLevel() { 
    var currentLevel = parseFloat(document.getElementById("currentLevel").value); 
    var xpForLevel = trainerLevels.currentLevel; 
    document.getElementById("result01").innerHTML = xpForLevel; 
} 
+1

Wenn Sie eine Variable verwenden, um den Wert einer Eigenschaft zu erhalten, müssen Sie die Klammernotation verwenden: 'var xpForLevel = trainerLevels [currentLevel];' –

+0

Und das Problem ist bekannt, es war so einfach. Danke – Giles

+0

Ziemlich gut diskutiert in der [Dokumentation] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors). –

Antwort

1

Ich gehe davon aus, dass trainerLevels ein Array und currentLevel ist ein Index. Wenn dies der Fall ist, besteht die Möglichkeit, auf ein Element in einem Array bei einem bestimmten Index zuzugreifen, darin, Klammern wie diese zu verwenden. Könnten Sie sonst mehr Details in Ihrer Frage angeben?

var xpForLevel = trainerLevels[currentLevel]; 

Ist dies die Antwort, die Sie gesucht haben, dann kann ich empfehlen, dass Sie die parseInt anstatt die parseFloat Funktion für das Erhalten des Index verwenden? Und da es sich um Benutzereingaben handelt, möchten Sie vielleicht auch überprüfen, dass currentLevel ebenfalls im richtigen Bereich liegt.