Ich habe ein Objekt-Array in JavaScript erstellt. Wie kann ich das Objektarray im Browserfenster drucken, ähnlich der print_r
-Funktion in PHP
var lineChartData = [{
date: new Date(2009, 10, 2),
value: 5
}, {
date: new Date(2009, 10, 25),
value: 30
}, {
date: new Date(2009, 10, 26),
value: 72,
customBullet: "images/redstar.png"
}];
Einfach stringify
Ihr Objekt und weisen Sie es dem innerHTML eines Elements Ihrer Wahl zu.
yourContainer.innerHTML = JSON.stringify(lineChartData);
Wenn Sie etwas Schöneres wollen, tun Sie es
yourContainer.innerHTML = JSON.stringify(lineChartData, null, 4);
var lineChartData = [{
date: new Date(2009, 10, 2),
value: 5
}, {
date: new Date(2009, 10, 25),
value: 30
}, {
date: new Date(2009, 10, 26),
value: 72,
customBullet: "images/redstar.png"
}];
document.getElementById("whereToPrint").innerHTML = JSON.stringify(lineChartData, null, 4);
<pre id="whereToPrint"></pre>
Wenn Sie dies jedoch nur zum Debuggen tun, sollten Sie die Konsole mit console.log(lineChartData)
verwenden.
Wenn Sie Chrome verwenden, können Sie auch verwenden
console.log( yourArray );
Hast du überprüft
console.table(yourArray);
Weitere Infos hier: https://developer.mozilla.org/en-US/docs/Web/API/Console/table
Einfache Funktion zum Warnen von Inhalten eines Objekts oder eines Arrays.
Rufen Sie diese Funktion mit einem Array oder einer Zeichenfolge oder einem Objekt auf, um den Inhalt zu warnen.
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);
}
}
Verwendungszweck
var data = [1, 2, 3, 4];
print_r(data);
document.getElementById('container').innerHTML = lineChartData[array_index]
Emm ... Warum nicht so etwas verwenden?
function displayArrayObjects(arrayObjects) {
var len = arrayObjects.length, text = "";
for (var i = 0; i < len; i++) {
var myObject = arrayObjects[i];
for (var x in myObject) {
text += ( x + ": " + myObject[x] + " ");
}
text += "<br/>";
}
document.getElementById("message").innerHTML = text;
}
var lineChartData = [{
date: new Date(2009, 10, 2),
value: 5
}, {
date: new Date(2009, 10, 25),
value: 30
}, {
date: new Date(2009, 10, 26),
value: 72,
customBullet: "images/redstar.png"
}];
displayArrayObjects(lineChartData);
<h4 id="message"></h4>
Ergebnis:
date: Mon Nov 02 2009 00:00:00 GMT+0200 (FLE Standard Time) value: 5
date: Wed Nov 25 2009 00:00:00 GMT+0200 (FLE Standard Time) value: 30
date: Thu Nov 26 2009 00:00:00 GMT+0200 (FLE Standard Time) value: 72 customBullet: images/redstar.png
Ich verwende die folgende Funktion, um eine Anzeige im Protokoll der Firefox-Konsole anzuzeigen:
//// make printable string for console readout, recursively
var make_printable_object = function(ar_use)
{
//// internal arguments
var in_tab = arguments[1];
var st_return = arguments[2];
//// default vales when applicable
if (!in_tab) in_tab = 0;
if (!st_return) st_return = "";
//// add depth
var st_tab = "";
for (var i=0; i < in_tab; i++) st_tab = st_tab+"-~-~-";
//// traverse given depth and build string
for (var key in ar_use)
{
//// gather return type
var st_returnType = typeof ar_use[key];
//// get current depth display
var st_returnPrime = st_tab+ "["+key+"] ->"+ar_use[key]+"< is {"+st_returnType+"}";
//// remove linefeeds to avoid printout confusion
st_returnPrime = st_returnPrime.replace(/(\r\n|\n|\r)/gm,"");
//// add line feed
st_return = st_return+st_returnPrime+"\n";
//// stop at a depth of 15
if (in_tab>15) return st_return;
//// if current value is an object call this function
if ( (typeof ar_use[key] == "object") & (ar_use[key] != "null") & (ar_use[key] != null) ) st_return = make_printable_object(ar_use[key], in_tab+1, st_return);
}
//// return complete output
return st_return;
};
Beispiel:
console.log( make_printable_object( some_object ) );
Alternativ können Sie einfach ersetzen:
st_return = st_return+st_returnPrime+"\n";
mit
st_return = st_return+st_returnPrime+"<br/>";
in einer HTML-Seite ausdrucken.
Sie können einfach die folgende Syntax verwenden und das Objekt wird vollständig in der Konsole angezeigt:
console.log('object evt: %O', object);
Ich benutze den Chrome-Browser. Ich weiß nicht, ob dies für andere Browser geeignet ist.
ich benutze meine benutzerdefinierte Funktion, um das Array in der Konsole zu drucken
this.print = function (data,bpoint=0) {
var c = 0;
for(var k=0; k<data.length; k++){
c++;
console.log(c+' '+data[k]);
if(k!=0 && bpoint === k)break;
}
}
verwendung: Print (Array);
oder print (Array, 50); // 50 Wert nur zum Drucken