javascript change title - Abrufen des Eigenschaftsnamens des Objekts




6 Answers

Verwenden Sie Object.keys():

var keyNames = Object.keys(myObject);
console.log(keyNames);

Object.keys() gibt Ihnen ein Array von Eigenschaftsnamen, die zum Eingabeobjekt gehören.

document auslesen

Ich habe mich gefragt, ob es in JavaScript eine Möglichkeit gibt, ein Objekt so zu durchlaufen.

for(var i in myObject) {
    // ...
}

Aber hole den Namen jeder Immobilie so.

for(var i in myObject) {
    separateObj[myObject[i].name] = myObject[i];
}

Bei Google kann ich so etwas nicht finden. Sie sagen, die Namen der Variablen mit ihnen zu übergeben, aber das ist keine Option für das, was ich erreichen möchte.

Vielen Dank für Ihre Hilfe.




Haftungsausschluss Ich habe die Frage falsch verstanden: "Kann ich den Namen der Immobilie kennen, an den ein Objekt angehängt wurde?", Entschied sich aber dafür, die Antwort zu belassen, da einige Leute hier landen könnten, wenn sie danach suchen.

Nein, ein Objekt könnte mehreren Eigenschaften zugeordnet sein, sodass es seinen Namen nicht kennt.

var obj = {a:1};
var a = {x: obj, y: obj}

Wie wäre der Name von obj?

Sind Sie sicher, dass Sie nicht nur den Eigenschaftsnamen aus der for-Schleife möchten?

for (var propName in obj) {
  console.log("Iterating through prop with name", propName, " its value is ", obj[propName])
}



zum direkten Zugriff auf eine Objekteigenschaft nach Position ... im Allgemeinen nützlich für property [0] ... also hält es Informationen über die weitere ... oder in node.js 'require.cache [0]' für das erste geladene externe Modul usw. usw.

Object.keys (myObject) [0] Object.keys (myObject) [1] ... Object.keys (myObject) [n]




Wenn Sie die For / In-Schleife ausführen, die Sie zuerst aufstellen, ist i der Name der Eigenschaft. Sie haben also den Eigenschaftsnamen i und greifen auf den Wert zu, indem Sie myObject [i] ausführen.




Ab 2018 können Sie Object.getOwnPropertyNames() wie in Mozilla-Dokumentation für Entwickler beschrieben

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

console.log(Object.getOwnPropertyNames(object1));
// expected output: Array ["a", "b", "c"]



Schnell & schmutzig:

function getObjName(obj) {
  return (wrap={obj}) && eval('for(p in obj){p}') && (wrap=null);
}



Related