Wie zeige ich ein vollständiges Objekt in der Chrome-Konsole?

155
var functor=function(){
    //test
}

functor.prop=1;

console.log(functor);

Dies zeigt nur den Funktionsteil des Funktors, nicht die Eigenschaften des Funktors in der Konsole.

Liebesfrühling
quelle

Antworten:

245

Verwenden Sie console.dir()diese Option, um ein durchsuchbares Objekt auszugeben, durch das Sie anstelle der .toString()Version klicken können :

console.dir(functor);

Druckt eine JavaScript-Darstellung des angegebenen Objekts. Wenn das zu protokollierende Objekt ein HTML-Element ist, werden die Eigenschaften seiner DOM-Darstellung gedruckt [1].


[1] https://developers.google.com/web/tools/chrome-devtools/debug/console/console-reference#dir

Nick Craver
quelle
1
Es ist zu beachten, dass nur das Drucken varNamein der Chrome-Konsole und das Drücken der Eingabetaste den gleichen Effekt haben wie console.dir(varName).
Vadzim
118

Sie erhalten möglicherweise bessere Ergebnisse, wenn Sie Folgendes versuchen:

console.log(JSON.stringify(functor));
BastiBen
quelle
Diese Antwort ist großartig, aber ich denke, funktioniert nicht mit dem obigen Beispiel, versucht in einem neuen Tab und gibt undefiniert zurück
aitorllj93
1
Bei allem Respekt vor dieser Antwort wird schließlich eine Zeichenfolge zurückgegeben, die das Objekt darstellt, und kein "durchsuchbares" Objekt in der Konsole, wie es hier bei der Frage der Fall ist. Wenn Sie diese Ausgabezeichenfolge über JSON.parse ausführen, kehrt sie zwar in ihr Objektformat zurück, die Konsole zeigt jedoch weiterhin ".toString ()" an, und wir kehren zum ersten Punkt zurück. Die Antwort hier mit der Verwendung von "console.dir" passt am besten zu der vorliegenden Frage.
TheCuBeMan
21

Sie erhalten möglicherweise noch bessere Ergebnisse, wenn Sie Folgendes versuchen:

console.log(JSON.stringify(obj, null, 4));
Dreizack D'Gao
quelle
Diese Antwort verbessert @ BastiBens durch Formatieren der Ausgabe.
Xeoncross
12
var gandalf = {
  "real name": "Gandalf",
  "age (est)": 11000,
  "race": "Maia",
  "haveRetirementPlan": true,
  "aliases": [
    "Greyhame",
    "Stormcrow",
    "Mithrandir",
    "Gandalf the Grey",
    "Gandalf the White"
  ]
};
//to console log object, we cannot use console.log("Object gandalf: " + gandalf);
console.log("Object gandalf: ");
//this will show object gandalf ONLY in Google Chrome NOT in IE
console.log(gandalf);
//this will show object gandalf IN ALL BROWSERS!
console.log(JSON.stringify(gandalf));
//this will show object gandalf IN ALL BROWSERS! with beautiful indent
console.log(JSON.stringify(gandalf, null, 4));
Kean Amaral
quelle
8

das hat bei mir perfekt funktioniert:

for(a in array)console.log(array[a])

Sie können jedes in der Konsole erstellte Array extrahieren, um die bereinigten Daten zu finden / zu ersetzen und nachträglich zu verwenden

domSurgeon
quelle
3
etwas detaillierter:for (i in arr) { console.log(i); console.log(arr[i]); }
Geo
Es werden keine Eigenschaften und Methoden ausgegeben, die nicht aufzählbar sind
Barbu Barbu
0

Ich habe eine Funktion geschrieben, um Dinge bequem auf die Konsole zu drucken.

// function for debugging stuff
function print(...x) {
    console.log(JSON.stringify(x,null,4));
}

// how to call it
let obj = { a: 1, b: [2,3] };
print('hello',123,obj);

wird in der Konsole ausgegeben:

[
    "hello",
    123,
    {
        "a": 1,
        "b": [
            2,
            3
        ]
    }
]
John Henckel
quelle
0

Funktioniert mit modernen Browsern console.log(functor)einwandfrei (verhält sich genauso wie a console.dir).

akim
quelle
0

Ich habe eine Funktion der Trident D'Gao-Antwort gemacht.

function print(obj) {
  console.log(JSON.stringify(obj, null, 4));
}

Wie man es benutzt

print(obj);
Jens Törnell
quelle
-5

So geben Sie obj aus:

console.log(obj, null, 4)
Kulakov Serg
quelle