在JavaScript中定位对象数组

时间:2017-03-17 15:47:22

标签: javascript

我有这种格式的值:

INDEX

我想输出" football"。我怎么能这样做?

我已尝试var state = [{"industry-type":"football","your-role":"coach"}] ,但它返回错误:

state[0].industry-type

任何帮助表示感谢。

5 个答案:

答案 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.propertyobject['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"]

相关问题:

What characters are valid for JavaScript variable names?

答案 4 :(得分:0)

您需要为属性使用括号表示法 -

state[0]['industry-type']