網站搜尋

如何列印 JavaScript 物件的內容?


通常,如果我們只是使用 alert(object);,它會顯示為 [object Object]。 如何在 JavaScript 中列印一個物件的所有內容參數?

答案#1

這將使用 JSON.stringify 為你產生帶縮排的 JSON 物件,並得到非常好的輸出:

alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4));

第二個參數(replacer)會在返回字串之前改變其內容。

第三個參數(space)指定用多少個空格作為空白以增進可讀性。

這裡是 JSON.stringify 的文件。

答案#2

如果你使用的是 Firefox,alert(object.toSource()) 應該足以應付簡單的除錯需求。

答案#3

除了使用除錯器之外,你也可以使用 foreach 迴圈存取物件的所有元素。以下的 printObject 函數應該會 alert() 你的物件,顯示所有屬性及其對應的值。

function printObject(o) {
  var out = '';
  for (var p in o) {
    out += p + ': ' + o[p] + '\n';
  }
  alert(out);
}

// now test it:
var myObject = {'something': 1, 'other thing': 2};
printObject(myObject);

使用 DOM 檢查工具是比較好的,因為它允許你挖掘屬性本身就是物件的內容。Firefox 有 FireBug,但其他所有主要瀏覽器(IE、Chrome、Safari)也都有內建的除錯工具,你應該查看這些工具。

答案#4

如果你只是想要一個物件的字串表示形式,你可以使用 JSON.stringify 函數,使用 JSON 函式庫。

答案#5

你可以使用 Node 的 util.inspect(object) 來打印出物件的結構。

當你的物件有循環依賴時,這尤其有幫助,例如。

node

var obj = {
   "name" : "John",
   "surname" : "Doe"
}
obj.self_ref = obj;

util = require("util");

var obj_str = util.inspect(obj);
console.log(obj_str);
// prints { name: 'John', surname: 'Doe', self_ref: [Circular] }

在這種情況下,JSON.stringify 會拋出異常:TypeError: Converting circular structure to JSON

答案#6

你可以使用列印物件的內容

console.log(obj_str);

你可以在控制台看到如下結果。

Object {description: "test"} 

在 Chrome 瀏覽器中按 F12 打開控制台,你會在調試模式中找到控制台標籤。