2
Warum ist diese Rückkehr: tracker.paramsToTrack undefiniert istHilfe neue Eigenschaft Hinzufügen Objektliteral
var tracker = {};
var paramsToTrack = ['a', 'b', 'c', 'd', 'e'];
for (p in paramsToTrack)
{
if(params[paramsToTrack[p]])
{
tracker.paramsToTrack[p] = params[paramsToTrack[p]];
}
}
console.log(tracker);
Ich bin im Grunde params prüft wird, ob ‚a‘ bis ‚e‘ vorhanden sind. Wenn ja, fügen sie das Tracker-Objekt wie folgt:
tracker.a = Sachen
tracker.b = Sachen
Gedanken auf, was ich falsch hier?
Das wor ked! Warum funktioniert Punktnotation nicht aus Neugier? – doremi
Die Punktnotation behandelt den Eigenschaftsnamen wörtlich. Sie fragen im Wesentlichen nach der Eigenschaft "paramsToTrack" des Trackers. Wirklich, was Sie wollen, ist für den Ausdruck paramsToTrack [p] ausgewertet werden, und dann das Ergebnis als der Name der Eigenschaft behandelt werden. –
@Joshua McGinnis: Die folgenden zwei Notationen sind äquivalent: 'obj ['property']' und 'obj.property'. Sie können nur Variablen mit der vorherigen Schreibweise verwenden. – jwueller