2011-11-05 7 views
4

私は一種のバブルに年齢別のレコードの配列をしようとしているが、私が得るすべては次のとおりです。どのようにすることができ、[オブジェクトのオブジェクト]、[オブジェクトのオブジェクト]、[オブジェクトのオブジェクト]なぜ私のオブジェクトは "[オブジェクトオブジェクト]"として表示されますか?

レコードの値を表示するようにしますか?彼らは文字列に変換されている場合(alert()の場合のように)

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); 
+3

[どのように可能性の重複私はJavaScriptのオブジェクトを印刷しますか?](http://stackoverflow.com/questions/957537/how-can-i-print-a-javascript-object) –

+1

btw、注意してください"students"や "tempValue"のような宣言されていない変数の使用について。デフォルトでは、それらはグローバルにすることができ、それはしばしばあなたが望むものではありません。 – hugomg

答えて

10

デフォルトでは、JavaScript内のすべてのオブジェクトは、"[object Object]"に向けます。

あなたがしようとすることができます:

  • 使用にconsole.logや

    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文字列表現を警告するか、ログインできサポートされているブラウザで
    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" 
    
+1

JSON.stringify +1 –

+1

「F12またはCtrl + Shift + Jを使用して」 – Raynos

+2

OperaとChromeでCtrl + Shift + Iを押します。 – c69

1

alert(JSON.stringify(students)); 
関連する問題