Javascript 按名称获取对象
我正在构建我认为有点复杂的东西,但我已经意识到它不能以我想要的方式工作,所以我在这里 下面是我正在做的一个例子Javascript 按名称获取对象,javascript,jquery,Javascript,Jquery,我正在构建我认为有点复杂的东西,但我已经意识到它不能以我想要的方式工作,所以我在这里 下面是我正在做的一个例子 ITEM1: { prop1: 'desc1', prop2: 'desc2', }, ITEM2: { prop1: 'desc1', prop2: { SUBITEM1: { prop1: 'desc1', prop2: 'desc2', prop3: 'desc3' } } } 现在,如果我执行以下操作,这
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
这个项目还很年轻,所以如果需要重建整个列表来正确完成这个任务,我不介意
我希望这是有意义的。您想要单独的对象吗?我猜您缺少
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!
你到底试了什么?它在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"
有什么问题吗?prop2[“SUBITEM1”]。prop1应该可以很好地工作。您实际试用过吗
ITEM2.prop2.SUBITEM1
完全等同于ITEM2.prop2[“SUBITEM1”]
。如果你愿意,你甚至可以做'ITEM2[“prop2”][“SUBITEM1”],我发现了这个问题。真的没有错。。。我忘了修剪字符串,所以它试图执行ITEM2.prop2[“SUBITEM1”]。
@Robert这将是未定义的,因为它不是数组。@Jai我们在这里讨论的是javascript…呃。。。它不使用var
,也不使用逗号。OP中的代码语法无效。如果您在第1项中谈论的是'desc2'
之后的逗号,它将导致IE出现问题。不过,我忘了它是在哪个版本中修复的。我认为这在IE7中是个问题,也许在IE8中也是如此。不仅如此,我的意思是something:{}
一开始就不是有效的语法var x={something:{}}
就可以了。@RobertE.McIntosh关于IE的观点很好!(我真是糟透了!)非常感谢。我会尽快接受。真不敢相信我竟然忘了删除空格…啊,我以前没看到你的答案。您将ITEM1:
替换为ITEM1=
,就像我一样。这就是它起作用的原因。所以,这不是“这样”,是的。甚至我也面临同样的语法错误我忘了添加顶层,它是options={}
,这是我的错。