2081 Stimmen

Wie kann ich ein JavaScript-Objekt anzeigen?

Wie zeige ich den Inhalt eines JavaScript-Objekts in einem String-Format an, wie wir es bei alert eine Variable?

Ich möchte ein Objekt auf die gleiche Weise formatieren.

1voto

dsharhon Punkte 438

In ES2015 wird die Verwendung der Syntax für die Deklaration von Eigenschaften in Kurzform für Objektliterale können Sie Objekte protokollieren und gleichzeitig Ihre Variablennamen prägnant beibehalten:

console.log("bwib:", bwib, "bwab:", bwab, "bwob": bwob) // old way A
console.log({bwib: bwib, bwab: bwab, bwob: bwob})       // old way B

console.log({bwib, bwab, bwob})                         // ES2015+ way

Demonstration in Firefox Console

0voto

Elshan Punkte 6570

Versuchen Sie dies:

var object = this.window;
console.log(object,'this is window object');

Ausgabe:

enter image description here

0voto

Yuriy Naydenov Punkte 1820

Es wird nicht in einem Browser funktionieren und Sie benötigen dies nur, wenn Sie eine gültige JS-Darstellung für Ihr Objekt und nicht ein JSON erhalten möchten. Es läuft nur die Inline-Auswertung des Knotens

var execSync = require('child_process').execSync

const objectToSource = (obj) =>
  execSync('node -e \'console.log(JSON.parse(`' + JSON.stringify(obj) + '`))\'', { encoding: 'utf8' })

console.log(objectToSource({ a: 1 }))

-2voto

centurian Punkte 1152

Es scheint, dass eine einfache for...in kann das Problem nicht lösen, vor allem dann nicht, wenn wir neben benutzerdefinierten, Host-, nativen oder CSSOM-Objekten auch andere Dinge angehen wollen. Außerdem geht es hier um Debugging und wer weiß, wann und wo wir es brauchen werden!

Meine kleine Bibliothek kann mit Objekten wie diesem umgehen:

    obj2
     |__ foo = 'bar'
     |__ loop2 = obj2
     |            :
     |__ another = obj1
                    |__ a1 = 1
                    |__ b1 = 'baz'
                    |__ loop1 = obj1
                    |            :
                    |__ c1 = true
                    |__ d1 = ''
                    |__ e1 = [1,2,3]

und präsentieren sie farbenfroh und mit Kennzeichnung wie:

  1. 0, foo, 'bar'
  2. 0, loop2, 'enthält einen Rundverweis auf das Objekt bei Index 0'.
  3. 0, ein anderes, 'Objekt'
  4. 1, a1, 1
  5. 1, b1, 'baz'
  6. 1, loop1, 'enthält einen Rundverweis auf das Objekt bei Index 2'.
  7. 1, c1, 'wahr'
  8. 1, d1, ''
  9. 1, e1, [1,2,3]

aber siehe da:

  1. https://github.com/centurianii/jsdebug
  2. http://jsfiddle.net/centurianii/92Cmk/36/

Mit einigen Vorsichtsmaßnahmen sogar document.body wird geparst!

-2voto

Rayiez Punkte 1250

Sie können meine Funktion verwenden.
Rufen Sie diese Funktion mit einem Array, einer Zeichenkette oder einem Objekt auf, wird der Inhalt gemeldet.

Funktion

function print_r(printthis, returnoutput) {
    var output = '';

    if($.isArray(printthis) || typeof(printthis) == 'object') {
        for(var i in printthis) {
            output += i + ' : ' + print_r(printthis[i], true) + '\n';
        }
    }else {
        output += printthis;
    }
    if(returnoutput && returnoutput == true) {
        return output;
    }else {
        alert(output);
    }
}

Verwendung

var data = [1, 2, 3, 4];
print_r(data);

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