2016-06-27 2 views
-3

私はJavascriptのオブジェクトを使用して訓練しています、と私はJavascriptの配列を表すこれらの例が見つかりました:Javascript配列を表すのに適した形式は何ですか?

var obj = { 
    key : { 
     0 : {name : "test0"}, 
     1 : {name : "test1"}, 
     2 : {name : "test2"} 
    } 
} 

var obj2 = { 
    key : [ 
     {name : "test0"}, 
     {name : "test1"}, 
     {name : "test2"} 
    ] 
} 

console.log(obj.key[0].name); //test0 
console.log(obj2.key[0].name); //test0 

これらの配列の適切な表現でしょうか?これらは同等で、なぜですか?

+0

JSON形式で表すと2番目の方が優れています。 http://www.w3schools.com/js/js_objects.aspとhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects –

答えて

-2
var obj2 = { 
    key: [ 
     {name: "test0"}, 
     {name: "test1"}, 
     {name: "test2"} 
    ] 
}; 

これは、オブジェクトの.ARRAYを反復処理するための最良の方法と正しい方法.Easierでは、2番目の例では優れている0,1,2,3,4

+0

を勉強してみてください。これは「正しいJSON記法"これはJSONではないためです。 http://stackoverflow.com/questions/3975859/what-are-the-differences-between-json-and-javascript-object – CherryDT

+0

私のポイントは、オブジェクトの配列についてですが、私はそれを変更しますplz upvote –

0

でキーをマーキングに対するとして推奨されます解決策は、あなたが配列としてオブジェクトを処理するために計画している場合は特に:

var obj2 = { 
    key: [ 
     {name: "test0"}, 
     {name: "test1"}, 
     {name: "test2"} 
    ] 
}; 

これは順次要素にアクセスできるようになります:

for (var i = 0; i < obj2.length; ++i) { 
    console.log("Name: ", obj2[i].name); 
} 

もう1つの(最初の)例は、数値キーでオブジェクトを作成しますが、実際には配列を作成しません。そのため、配列メソッドはオブジェクト上で利用できません。

ただし、スパース配列を作成する場合は、これが適切な方法です。この例を考えてみましょう:

var obj = { 
    key : { 
     0 : {name : "test0"}, 
     3 : {name : "test3"}, 
     8 : {name : "test8"} 
    } 
} 

は、これは、あなたの整数でインデックス化できるオブジェクトを提供しますが、整数インデックスは連続している必要はありません。実際には、上記の例では配列を繰り返し処理しますが、この場合は失敗します。

for (var i in obj2) { 
    console.log("Name: ", obj2[i].name); 
} 
+0

@ A.Rossiこれがあなたの質問に答えるのに役立っている場合は、答えの横にあるチェックマークをクリックして、これを受け入れられた回答としてください。これを行うと、チェックマークの色が緑色に変わり、現在受け入れられていることを示します。ありがとう! :D –

関連する問題