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.
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.
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
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 }))
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:
aber siehe da:
Mit einigen Vorsichtsmaßnahmen sogar document.body
wird geparst!
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 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.