我有一个对象:
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']
但仍然没有
我做错了什么?
答案 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])