Ich habe mich gefragt, ob es in JavaScript eine Möglichkeit gibt, ein Objekt wie dieses zu durchlaufen.
for(var i in myObject) {
// ...
}
Aber erhalten Sie den Namen jeder Eigenschaft wie folgt.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Ich kann so etwas bei Google anscheinend nicht finden. Sie sagen, dass sie die Namen der Variablen mit ihnen übergeben sollen, aber dies ist keine Option für das, was ich erreichen möchte.
Vielen Dank für jede Hilfe, die Sie anbieten können.
javascript
object
properties
Olical
quelle
quelle
seperate
sollte seinseparate
'l' + new Array(1000).join('o') + 'ng'
seitdem einen Weg gegangen.Antworten:
Verwenden Sie Object.keys ():
Object.keys()
gibt Ihnen ein Array von Eigenschaftsnamen, die zum Eingabeobjekt gehören.quelle
i
ist der Name.So könnten Sie tun:
quelle
hasOwnProperty
wenn Sie keine geerbten Eigenschaften wollen. Auf diese Weise folgen Sie nicht blind einer Regel. Es kann sein, dass Sie in einigen Fällen tatsächlich geerbte Eigenschaften betrachten möchten. Eine andere Möglichkeit, die eigenen Eigenschaften eines Objekts zu durchlaufen, ist die Verwendung von Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Haftungsausschluss Ich habe die Frage falsch verstanden: "Kann ich den Eigenschaftsnamen kennen, an den ein Objekt angehängt wurde?", Aber ich habe mich entschieden, die Antwort zu hinterlassen, da einige Leute möglicherweise hier landen, während sie danach suchen.
Nein, ein Objekt kann an mehrere Eigenschaften angehängt werden, sodass es seinen Namen nicht kennen kann.
Wie würde obj heißen?
Sind Sie sicher, dass Sie nicht nur den Eigenschaftsnamen aus der for-Schleife möchten?
quelle
Sie können Objekte problemlos iterieren
zB: wenn das Objekt var a = {a: 'Apfel', b: 'Ball', c: 'Katze', d: 'Puppe', e: 'Elefant'} ist;
quelle
für den direkten Zugriff auf eine Objekteigenschaft nach Position ... im Allgemeinen nützlich für Eigenschaft [0] ... damit sie Informationen über die weiteren ... oder in node.js 'require.cache [0]' für das erste geladene externe Modul enthält usw. usw. usw.
quelle
Abgesehen von "Object.keys (obj)" haben wir eine sehr einfache "for ... in" -Schleife, die die aufzählbaren Eigenschaftsnamen eines Objekts durchläuft.
quelle
Verwenden Sie die Object.keys () -Methode, um die Eigenschaft des Objekts oder den "Array-Schlüssel" oder "Array-Index" abzurufen, je nachdem, welche Muttersprache Sie verwenden.
Wichtig, dies ist nur mit "modernen Browsern" kompatibel:
Wenn Ihr Objekt aufgerufen wird, wird myObject ...
Walla! Dies wird definitiv in der neuesten Firefox und dh11 und Chrom funktionieren ...
Hier finden Sie einige Dokumentationen unter MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
quelle
IN ES5
EG Sie haben diese Art von Objekt:
Und jetzt, wenn Sie eine Funktion haben möchten, die, wenn Sie '0' als Parameter übergeben - um 'STEP_ELEMENT' zu erhalten, wenn '2', um 'BLUE_ELEMENT' zu erhalten und so weiter
Dies ist wahrscheinlich nicht die beste Lösung für das Problem, aber es ist gut, Ihnen eine Idee zu geben, wie es geht.
Prost.
quelle
Ab 2018 können Sie
Object.getOwnPropertyNames()
wie in der Entwickler-Mozilla-Dokumentation beschrieben verwendenquelle
Wenn Sie die for / in-Schleife ausführen, die Sie zuerst erstellt haben, ist i der Eigenschaftsname. Sie haben also den Eigenschaftsnamen i und greifen mit myObject [i] auf den Wert zu.
quelle
Diese Lösungen funktionieren auch.
quelle
Verwenden Sie die
Object.keys()
Funktion zum Erfassen von Eigenschaften von aObject
und helfen Sie dabei, Eigenschaften nach Namen zu suchen, zum Beispiel:quelle
Schnell und schmutzig:
quelle