按名称获取对象

时间:2013-02-06 18:56:55

标签: javascript jquery

我正在构建我认为稍微复杂的东西,但我已经意识到它不按照我想要的方式工作,所以我在这里。

以下是我正在做的事情的一个例子。

ITEM1: {
  prop1: 'desc1',
  prop2: 'desc2',
},
ITEM2: {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
}

现在,如果我执行以下操作,这将完美地运行

ITEM2.prop2.SUBITEM1.prop1;

问题是我做不到ITEM2.prop2.SUBITEM1我需要按以下方式进行

ITEM2.prop2["SUBITEM1"].prop1

这个项目还很年轻,所以如果需要重建整个列表才能做到这一点,我不介意。

我希望这是有道理的。

2 个答案:

答案 0 :(得分:4)

你真的尝试过什么?它在Chrome中就是这样的。您的信息的屏幕截图...

文字表示:

ITEM1= {
  prop1: 'desc1',
  prop2: 'desc2',
},
ITEM2= {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
}
Object
ITEM2.prop2.SUBITEM1.prop1;
"desc1"
ITEM2.prop2["SUBITEM1"].prop1
"desc1"

答案 1 :(得分:0)

你想要单独的物品吗?我猜您错过了var个关键字。在这种情况下,您还必须删除您在那里的额外逗号。试试这个:

var ITEM1 = {
  prop1: 'desc1',
  prop2: 'desc2',
};
var ITEM2 = {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
};
console.log(ITEM2.prop2.SUBITEM1.prop1); // Works!