簡體   English   中英

為什么我的對象顯示為“[object Object]”?

[英]Why are my objects showing up as “[object Object]”?

我試圖按年齡對一系列記錄進行冒泡,但我得到的只是:

[object Object],[object Object],[object Object]

如何讓它顯示記錄的值?

students = [
    {name: "timothy", age: "9"},
    {name: "claire",  age: "12"},
    {name: "michael", age: "20"}
];

for (var i = 0; i < students.length; i++) {
    for (var j = i + 1; j < students.length; j++) {
        if (Number(students[i].age) > Number(students[j].age)) {
            tempValue = students[j].age;
            students[j].age = students[i].age;
            students[i].age = tempValue;
        }
    }
}

alert(students);

默認情況下,JavaScript中的所有對象在轉換為字符串時都會變為"[object Object]" (與alert()的情況一樣)。

您可以嘗試:

  • 使用console.log或調試器來檢查數組(而不是使用alert())

     console.log(students); //Open your browser's developer tools to see the console. //Try F12, ctrl+shift+J or ctrl+shift+I as shortcuts 
  • 使用JSON.stringify函數序列化對象。

     JSON.stringify({a:1}); //yields '{"a":1}' 
  • 為對象提供自定義toString方法

     var x = { a : 17, toString: function(){ return 'I have a ' + this.a; } }; alert(x); //gives "I have a 17" 

在支持的瀏覽器中,您可以提醒或記錄JSON字符串表示:

alert(JSON.stringify(students));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM