917 Stimmen

Wie kann man auf die erste Eigenschaft eines Javascript-Objekts zugreifen?

Gibt es eine elegante Möglichkeit, auf die erste Eigenschaft eines Objekts zuzugreifen...

  1. wenn Sie den Namen Ihrer Eigenschaften nicht kennen
  2. ohne Verwendung einer Schleife wie for .. in oder jQuery's $.each

Ich brauche zum Beispiel Zugang zu foo1 Objekt, ohne den Namen von foo1 zu kennen:

var example = {
    foo1: { /* stuff1 */},
    foo2: { /* stuff2 */},
    foo3: { /* stuff3 */}
};

1929voto

Grzegorz Kaczan Punkte 19188
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'

Auf diese Weise können Sie auch auf andere Eigenschaften über Indizes zugreifen. Seien Sie jedoch vorsichtig! Object.keys Die Rückgabe-Reihenfolge ist laut ECMAScript nicht garantiert, inoffiziell wird sie jedoch von allen wichtigen Browser-Implementierungen garantiert, bitte lesen Sie https://stackoverflow.com/a/23202095 für Einzelheiten dazu.

163voto

Gumbo Punkte 617646

Versuchen Sie die for … in Schleife und brechen nach der ersten Iteration ab:

for (var prop in object) {
    // object[prop]
    break;
}

154voto

garrettmaring Punkte 6080

Sie können auch Folgendes tun Object.values(example)[0] .

59voto

Hamza Khursheed Punkte 1246

Sie können verwenden Objekt.Werte() um auf Werte eines Objekts zuzugreifen:

var obj = { first: 'someVal' };
Object.values(obj)[0]; // someVal

57voto

benekastah Punkte 5521

Utilice Object.keys um ein Array mit den Eigenschaften eines Objekts zu erhalten. Beispiel:

var example = {
    foo1: { /* stuff1 */},
    foo2: { /* stuff2 */},
    foo3: { /* stuff3 */}
};

var keys = Object.keys(example); // => ["foo1", "foo2", "foo3"] (Note: the order here is not reliable)

Dokumentation und Cross-Browser-Shim bereitgestellt ici . Ein Beispiel für seine Verwendung findet sich in einer anderen meiner Antworten ici .

Editar Zur Verdeutlichung möchte ich nur wiederholen, was in anderen Antworten korrekt angegeben wurde: Die Schlüsselreihenfolge in JavaScript-Objekten ist undefiniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X