0

私はこの問題に出くわしました。配列を定義し、オブジェクトを入力しました。最初の場合、データ配列はFirebugコンソールで次のようになります。

data = [
    Object { code="6", id="1073148", key="82628835"},
    Object { code="17", id="2073140", key="83628837"}
]

そして、私がその長さをチェックするとき、私は2から得ますdata.length

2番目のケースでは私は持っています

data = [
    [Object { code="6", id="1073148", key="82628835"}],
    [Object { code="17", id="2073140", key="83628837"}]
]

そしてこれ2もチェックすると戻ってきますdata.length

誰かが私がこの異なるケースで同じ長さを得ている理由を説明できますか?

いくつかの回答 データが入力された後$.parseJSON、私を混乱させるものを使用して編集します。最初のケースではコードの値にアクセスできdata[0].code、2番目のケースではアクセスできません。data[0][0].code

それらが配列の同じ子である場合、なぜ同じインデックスを使用してそれらにアクセスできないのですか。では、なぜ同じ長さなのですか?

4

2 に答える 2

4

data.lengthはどちらの場合も2つしかないため

さらに説明:

各オブジェクトには複数の値が含まれていますが、それらのオブジェクトの長さを要求しているわけではありません。

data.length =データ内の子供の数を取得します(孫といとこ、甥姪と甥ではありません)。

どちらの場合も、オブジェクトが何であるかに関係なく、データには2つあるため、長さ= 2

さらに:

これらのオブジェクトが何であるかは関係ありません。1つの文字列と1つの子配列を持つことができますが、長さを求めているオブジェクト内の2つのオブジェクトであるため、2を返します。

提起された2番目の質問に答えるための更新

アクセスの理由は単純です。最初の例では、例に示すように、子は典型的なオブジェクトです。

data = [ 
    //  These two CHILDREN are Typical Objects
    Object { code="6", id="1073148", key="82628835"}, 
    Object { code="17", id="2073140", key="83628837"} 
] 

したがって、データ[0]としてオブジェクト1にアクセスできます。

ただし、2番目の例では、子はARRAY型オブジェクトであるため、各子は複数の値を持つ可能性があります。例えば:

data = [   
    [Object { code="6", id="1073148", key="82628835"}],   
    [Object { code="17", id="2073140", key="83628837"}]   
]  
//  Your example here has 2 children but each child is an ARRAY type Object,
//  Each array has one child which is the object in each one
// thus you can call data[0][0] & data[1][0]
//  Could also be 
data = [   
    [Object { code="6", id="1073148", key="82628835"},   
    Object { code="17", id="2073140", key="83628837"}]   
]  
// in this later case, there is only one child
//  this one child, like in your example, is an ARRAY, but in this later example,
//  it has TWO children of its own
// thus you can call data[0][0] and data[0][1]

ご覧のとおり、2番目の例には2つの子オブジェクトがありません。代わりに、それぞれ1つの子オブジェクトを含む2つの子配列が含まれています。したがって、オブジェクト1を取得する必要性は次のようになります。data[0][0]

ここで、data [0]は最初の配列の子を取得し、2番目の[0]はその配列の子オブジェクトを取得しています

それを得る?

ただ私に知らせないなら!

于 2012-08-29T20:31:34.683 に答える
3

分離すると非常に簡単です。以下を参照してください。

ケース 1: 2 つのオブジェクトを含む配列。

data => [
         Object { code="6", id="1073148", key="82628835"}, 
         Object { code="17", id="2073140", key="83628837"}
        ]

ケース 2:それぞれがオブジェクトを含む 2 つの配列を含む配列。

data => [
          [Object { code="6", id="1073148", key="82628835"}], 
          [Object { code="17", id="2073140", key="83628837"}]
        ]

data.lengthどちらの場合も 2 つのアイテムが含まれているため、長さは 2です。.

于 2012-08-29T20:33:54.007 に答える