Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取javascript对象属性_Javascript_Jquery - Fatal编程技术网

读取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

假设我有一个如下形式的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 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不能是一个属性名,至少必须在其周围加上引号。