读取javascript对象属性
假设我有一个如下形式的JavaScript对象:读取javascript对象属性,javascript,jquery,Javascript,Jquery,假设我有一个如下形式的JavaScript对象: var myJsObject = { A.b: 1 A.c: 2 } 我如何获得A.c的值,比如说A.c 我试过: var value = myJsObject['A.c'] 但这给了我一个错误uncaughttypeerror:无法设置未定义的属性“A.c” 谢谢您不需要“Object”关键字,应该引用属性。这在我的控制台中起作用: var myJsObject = { 'A.b': 1, 'A.c': 2 }; var
var myJsObject =
{
A.b: 1
A.c: 2
}
我如何获得A.c的值,比如说A.c
我试过:
var value = myJsObject['A.c']
但这给了我一个错误uncaughttypeerror:无法设置未定义的属性“A.c”
谢谢您不需要“Object”关键字,应该引用属性。这在我的控制台中起作用:
var myJsObject = { 'A.b': 1, 'A.c': 2 };
var value = myJsObject['A.c'];
console.log(value); // 2
您不能链接点符号。这应该是有效的:
var myJsObject = {
A: {
b: 1,
c: 2
}
}
或者,如果您希望具有类似a.b
的属性名称,则需要将其引用,如果名称包含特殊字符:
var myJsObject =
{
'A b': 1,
'A.c': 2
}
代码
var myJsObject =
{
A.b: 1
}
产生语法错误,因为句点必须被引用,因为句点在语言中有特殊含义。JavaScript解释器读取A.b
,试图从A
对象获取b
属性,但它需要一个标识符名称,而不是一个操作。考虑一个类似的例子:
var myJsObject =
{
foo-bar: 1
}
在这里,连字符由减法运算符读取,并产生语法错误
相反,请使用带引号的属性名称:
var myJsObject =
{
"A.b": 1,
"A.c": 2
}
(另外,您的代码在我添加的
“a.b”:1
行后缺少一个逗号。)我知道,这是一个输入错误,但我仍然有同样的问题。您是否引用了我示例中的“a.b”和“a.c”属性?@gpojd-您的属性之间缺少一个逗号是的,我认为逗号和引号是问题所在,现在可以了,谢谢you@bPratik,这是原始问题的复制错误。我在控制台中测试时修复了它。我不会注意到……是的,你不能链接它们,但是OP使用myJsObject['A.c']
仍然有效。@bPratik是的,我同意,但我不确定,如果OP想为A
创建多个属性,或者只使用名为A.b
和A.c
的属性。你应该发布一个实际的例子。您显示的错误与您在示例中应该得到的错误不匹配。您在这里看到的是无效的javascript,因为A.b不能是一个属性名,至少必须在其周围加上引号。