Ich habe eine grundsätzliche Funktion, die ein Argument benötigt. Ich werde dieses Argument als Index verwenden, um auf das Array in der JSON-Datei zuzugreifen. Ich möchte dieses Argument nutzen, anstatt innerhalb der Funktion fest zu codieren. Aus bestimmten Gründen gibt Javascript jedoch nicht den richtigen Wert zurück.
var obj = {
"first":[
["aaaaa"],
["bbbbb"],
["ccccc"],
["ddddd"],
["eeeee"]
]
}
Ich habe eine Javascript-Funktion, um auf die Datei zuzugreifen.
function addElement(ID) {
console.log(obj.ID);
}
und jetzt, wenn ich benutze
addElement("first"); //this return me undefined.
Ich möchte nicht ausdrücklich erwähnen obj.first
um auf das rechte JSON-Objekt zuzugreifen. Ich möchte es allgemeiner machen, damit die Methode wiederverwendet werden kann. Fehlt mir hier etwas?
Vielen Dank...
Antworten:
3 für die Antwort № 1JavaScript unterstützt sowohl Punktnotation als auch einen Eigenschaftennamen wörtlich (obj.foo
) und Klammern und einen Eigenschaftsnamen Zeichenfolge (obj["foo"]
). * Im letzteren Fall kann die Zeichenfolge das Ergebnis eines beliebigen Ausdrucks sein.
Sie brauchen also Klammern, nicht Punktnotationen:
function addElement(ID) {
console.log(obj[ID]);
}
obj.ID
greift auf die Immobilie zu ID
. obj[ID]
greift auf die Eigenschaft zu, deren Name die Zeichenfolge der Variablen ist ID
.
* Nur zur Vollständigkeit: In ES6 wird der Name der Eigenschaft unterstützt Symbol
s in Klammern auch, aber das ist für Ihren Code nicht relevant.