2016-09-05 19 views
0

を働いていない私は、オブジェクトを持っている:JavaScriptのアクセス多次元オブジェクト

var Obj = [{ 
    id: "", 
    position: { 
     cartesian: [], 
     polar: [], 
     bob: "INERTIAL" 
    } 
}]; 

私は

Obj.id="sam/reconnaissance - "+samName; 

それは正常に動作をobt.id設定に進んでください。私はObj.position.cartesian

(Obj.position.cartesian).push(fooBar[i][t][p]); 

にアクセスするために行くとき

は、しかし、私はこのエラーを取得する:

 (Obj.position.cartesian).push(fooBar[i][t][p]); 
          ^
TypeError: Cannot read property 'cartesian' of undefined 

なぜ?私はObj['position']['cartesian']を試しましたが、まだ何もなし

私は間違って何をしていますか?

答えて

1

objがオブジェクトではありませんあなたはあなたは、配列を使用している、オブジェクトを使用していない

Obj[0]['position']['cartesian'] 
+1

uggありがとうございました!私が考えていたことは何でしょう! – hunterInt

+0

私は確かになります!私は10以上の分を待たなければなりませんstackoverflow says;) – hunterInt

1

のようにそれを試してみて、インデックス0で最初の要素にアクセスする必要があるので、それが配列です。あなたが持っていることは、配列内のオブジェクトがある

var obj = { 
    id: 0 
}; 

var obj = [{id: 0}]; 
1

objがするため、対象として単一の要素を持つ配列である([に注意してください)

オブジェクトは、次のようになりますアクセス位置には、これらの構文のいずれかを使用できます。

Obj[0]['position']['cartesian'] 
    Obj[0].position.cartesian 

再度cartesianは配列なので、使用できるプッシュ

Obj[0]['position']['cartesian'].push(foobar[i][t][p]) 
    Obj[0].position.cartesian.push(foobar[i][t][p]) 
関連する問題