javascript 访问多维对象无效

javascript access multidimensional object not working

我有一个对象:

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'] 但仍然没有

我做错了什么?

Obj 不是一个对象,它是一个数组,因此您必须访问索引为 0 的第一个元素。试一试

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

您使用的不是对象,而是数组。

对象看起来像这样:

var obj = {
    id: 0
};

你拥有的是一个数组中的对象:(注意[

var obj = [{id: 0}];

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])