javascript访问多维对象无法正常工作

时间:2016-09-05 17:44:08

标签: javascript json javascript-objects

我有一个对象:

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

当我去设置obt.id

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

工作正常。

然而,当我去访问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']但仍然没有

我做错了什么?

3 个答案:

答案 0 :(得分:1)

Obj不是一个对象,它是一个数组,所以你必须访问索引为0的第一个元素。试试吧

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

答案 1 :(得分:1)

您没有使用对象,而是使用数组。

对象如下所示:

Depth

你拥有的是数组中的一个对象:(注意var obj = { id: 0 };

[

答案 2 :(得分:1)

Obj是一个以单个元素为对象的数组,因此要访问位置,您可以使用任何这些语法

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

再次cartesian是一个数组因此调用push你可以使用

    Obj[0]['position']['cartesian'].push(foobar[i][t][p])
    Obj[0].position.cartesian.push(foobar[i][t][p])