2012-06-13 30 views
4

我想知道是否有一種快速的方法來獲取所有對象的變量的值,類似於php的var_dump()方法。JQuery快速轉儲對象的成員

所以,如果我有一個對象

var myObject = { 
    Up: 38, 
    Dn: 40, 
    Lf: 37, 
    Rt: 39, 
    Enter: 13, 
    Space: 32, 
    Esc: 27 
}; 

字符串我還是會回到看起來像

[ Up:38, Dn:40, Lf:37, Rt:39, Enter:13, Space:32, Esc:27 ] 

比方說,我需要這樣做的計算機上,我無法使用螢火蟲。有沒有辦法做到這一點,而無需遍歷對象中的所有參數?有沒有一個獨立的庫有這樣的東西?

+0

是否環路快速足夠你......? – gdoron

+1

'JSON.stringify' –

+0

@FelixKling不是JSON對象,它會繼續工作嗎? –

回答

5

作爲我經常使用的快速一班輪

var o = {a:1, b:2}, k, s = []; for (k in o) o.hasOwnProperty(k) && s.push (o[k]); s = s.join (', '); 

你只需要改變一個對象的出現(o的值),結果在s中。

這不會遞歸到數據結構中。 JSON.stringify可能更適合,如果這是一個要求。但請注意,JSON.stringify不會執行功能,它只是跳過它們!

對於格式化字符串化利用

JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indented 4 spaces 

按答案Javascript: How to generate formatted easy-to-read JSON straight from an object?

+0

哦,我的上帝很美,非常感謝你的先生。 –

+1

不客氣,從一個漢斯到另一個漢斯 – HBP

2

你試過FirebugLite?它有很多Firebug功能。

這是螢火蟲的Javascript庫,你只需要加載腳本

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script> 

,你會得到Firebug的控制檯在所有主要的瀏覽器包括Internet Explorer

+0

我根本不能使用Firebug,我沒有使用電腦我可以安裝東西,所以我堅持在IE上開發。 –

+0

@Hans FirebugLite是一個Javascript庫,看看我的鏈接 – Slawek

+0

請不要僅用鏈接發佈答案,如果鏈接腐爛,這是沒用的。 – gdoron

4

使用默認的開發。在IE,Chrome和Firefox

console.dir(myObject); 

工具,如果你真的不能使用這些工具,那麼也許一個JSON.stringify(myObject)可能會有幫助。

+1

「假設我需要在不能使用螢火蟲的計算機上執行此操作。」 – j08691

+1

我不能使用Firebug ...閱讀問題。 –

+0

沒有開發工具可以使用嗎?看看JSON.stringify。 – Ryan

0
function var_dump(obj) { 
    var obj_members = ""; 
    var sep = ""; 
    for (var key in obj) { 
     obj_members += sep + key + ":" + obj[key]; 
     sep = ", "; 
    } 
    return ("[" + obj_members + "]"); 
} 
1

JSON.stringify是要走的路,但它適用於所有的瀏覽器,只包含的lib:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

例子:

 text = JSON.stringify(['e', {pluribus: 'unum'}]); 
     // text is '["e",{"pluribus":"unum"}]' 


     text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); 
     // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' 

     text = JSON.stringify([new Date()], function (key, value) { 
      return this[key] instanceof Date ? 
       'Date(' + this[key] + ')' : value; 
     }); 
     // text is '["Date(---current time---)"]'