2013-02-15 61 views
40

मैंने जावास्क्रिप्ट में एक ऑब्जेक्ट सरणी बनाई है। PHP में print_r फ़ंक्शन के समान, ब्राउज़र विंडो में ऑब्जेक्ट सरणी कैसे मुद्रित कर सकता हूं?जावास्क्रिप्ट में ऑब्जेक्ट सरणी कैसे मुद्रित करें?

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" 
     }]; 
+10

कंसोल पर लॉग इन करने के लिए 'console.log (lineChartData)' का उपयोग करें। – Rob

+2

कंसोल में ऑब्जेक्ट देखने के लिए आप 'console.debug (lineChartData) 'का उपयोग कर सकते हैं। (फ़ायरफ़ॉक्स में: टूल्स-> वेब डेवलपर-> वेब कंसोल (या Ctrl + Shift + K) - या डाउनलोड करें [फ़ायरबग] (https://getfirebug.com/) –

उत्तर

88

सीधे शब्दों में

yourContainer.innerHTML = JSON.stringify(lineChartData); 

का उपयोग आप कुछ खूबसूरत,

yourContainer.innerHTML = JSON.stringify(lineChartData, null, 4); 

Demonstration

करते लेकिन अगर आप डिबग करने के लिए ऐसा करते हैं, तो आप चाहते चाहते हैं बेहतर use the consoleconsole.log(lineChartData) के साथ।

6

एक अद्भुत print_rphp.js पुस्तकालय में जावास्क्रिप्ट के लिए कार्यान्वयन नहीं है।

नोट, आपको कोड में echo समर्थन भी जोड़ना चाहिए।

डेमो:http://jsbin.com/esexiw/1

+11

गंभीरता से, 'कंसोल' डीबग के लिए एक बेहतर जगह है मुख्य ब्राउज़र विंडो की तुलना में जानकारी। – SDC

+0

@ एसडीसी * बिल्कुल * सहमत हैं। – VisioN

+0

@ एसडीसी अच्छी तरह से मैं मानता हूं कि यह सच है, कभी-कभी आप एक http अनुरोध करते हैं जो 100 या अधिक वस्तुओं को लौटाता है और तीर पर क्लिक करने के लिए यह समझ में नहीं आता है और ऑब्जेक्ट्स की सरणी के अंदर क्या है यह देखने के लिए उन्हें सभी खोलें – DrewT

1
document.getElementById('container').innerHTML = lineChartData[array_index] 
9

आप Chrome का उपयोग कर रहे हैं, तो आप भी

console.log(yourArray); 
3

सरल फ़ंक्शन का उपयोग एक वस्तु या एक सरणी की सामग्री को सचेत करने के लिए कर सकता है।
इस फ़ंक्शन को सरणी या स्ट्रिंग या ऑब्जेक्ट के साथ कॉल करें जो सामग्री को अलर्ट करता है।

समारोह

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); 
    } 
} 

प्रयोग

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

मैं नीचे फ़ंक्शन का उपयोग करें फ़ायरफ़ॉक्स कंसोल लॉग में एक रीडआउट प्रदर्शित करने के लिए:

////  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; 

}; 

examp le:

console.log(make_printable_object(some_object)); 

वैकल्पिक रूप से, तुम बस की जगह ले सकता:

st_return = st_return+st_returnPrime+"\n"; 

साथ
st_return = st_return+st_returnPrime+"<br/>"; 

एक html पृष्ठ में बाहर मुद्रित करने के लिए।

0

तुम बस निम्न सिंटैक्स का उपयोग कर सकते हैं और पूरी तरह से वस्तु कंसोल में दिखाया जाएगा:

console.log('object evt: %O', object); 

मैं क्रोम ब्राउज़र का उपयोग करता है, तो यह अन्य ब्राउज़रों के लिए अनुकूलनीय है पता नहीं है।

0

ईएमएम ... नहीं कुछ इस तरह उपयोग करने के लिए क्यों?

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>

परिणाम:

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 

jsfiddle

0

मैं अपने कस्टम फ़ंक्शन का उपयोग कंसोल में सरणी मुद्रित करने के लिए

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; 
    } 
} 

उपयोग: प्रिंट (सरणी);
या प्रिंट (सरणी, 50); // 50 मूल्य केवल

संबंधित मुद्दे