我有这种格式的值:
INDEX
我想输出" football"。我怎么能这样做?
我已尝试var state = [{"industry-type":"football","your-role":"coach"}]
,但它返回错误:
state[0].industry-type
任何帮助表示感谢。
答案 0 :(得分:2)
它不喜欢你的属性名称中的' - ',请尝试:
state[0]['industry-type']
答案 1 :(得分:1)
这是因为您无法直接使用-
访问属性。
var state = [{"industry-type":"football","your-role":"coach"}];
console.log(state[0]['industry-type']);
答案 2 :(得分:1)
{J}中保留-
符号,您无法使用它来引用对象的属性,因为Javascript认为您正在尝试进行减法:state[0].industry - type;
因此错误" 未捕获的ReferenceError:未定义类型" - 它正在寻找一个名为type
的变量来减去,它无法找到。
相反,请参阅:
state[0]['industry-type']
因为在Javascript中,object.property
和object['property']
相等。
对于它的价值,如果您可以控制这些名称,最好在Javascript中使用Camel Case来命名,因此您的变量将被定义为:
var state = [{"industryType":"football","yourRole":"coach"}]
然后,您可以像访问它一样访问它:
state[0].industryType
答案 3 :(得分:1)
为了能够使用点符号,请使用:
... property必须是有效的JavaScript标识符,即序列 字母数字字符,也包括下划线(" _")和 美元符号(" $"),不能以数字开头。
来自MDN
与指出的其他答案一样,您必须使用方括号表示法来访问不是有效JavaScript标识符的对象的属性名称。
e.g。
state[0]["industry-type"]
相关问题:
答案 4 :(得分:0)
您需要为属性使用括号表示法 -
state[0]['industry-type']