首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript access多维对象不工作

javascript access多维对象不工作
EN

Stack Overflow用户
提问于 2016-09-06 01:44:08
回答 3查看 414关注 0票数 0

我有一个对象:

代码语言:javascript
复制
var Obj = [{
    id: "",
    position: {
        cartesian: [],
        polar: [],
        bob: "INERTIAL"
    }
}];

当我转到设置obt.id时

代码语言:javascript
复制
Obj.id="sam/reconnaissance - "+samName;

它工作得很好。

但是,当我访问Obj.position.cartesian时

代码语言:javascript
复制
(Obj.position.cartesian).push(fooBar[i][t][p]);

我得到了这个错误:

代码语言:javascript
复制
     (Obj.position.cartesian).push(fooBar[i][t][p]);
                            ^
TypeError: Cannot read property 'cartesian' of undefined

为什么?我已经试过Obj['position']['cartesian']了,还是什么都没有

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-06 01:46:01

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

代码语言:javascript
复制
Obj[0]['position']['cartesian']
票数 1
EN

Stack Overflow用户

发布于 2016-09-06 01:51:34

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

对象如下所示:

代码语言:javascript
复制
var obj = {
    id: 0
};

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

代码语言:javascript
复制
var obj = [{id: 0}];
票数 1
EN

Stack Overflow用户

发布于 2016-09-06 02:20:16

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

代码语言:javascript
复制
    Obj[0]['position']['cartesian']
    Obj[0].position.cartesian

同样,cartesian是一个数组,因此要调用push,您可以使用

代码语言:javascript
复制
    Obj[0]['position']['cartesian'].push(foobar[i][t][p])
    Obj[0].position.cartesian.push(foobar[i][t][p])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39335470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档