2017-03-17 66 views
1

我已經在這個格式的值:靶向對象的數組在JavaScript

var state = [{"industry-type":"football","your-role":"coach"}] 

我想輸出「足球」。我怎樣才能做到這一點?

我試過state[0].industry-type但它返回一個錯誤:

Uncaught ReferenceError: type is not defined 

任何幫助表示讚賞。

+0

你有什麼是對象的數組(S ),而不是JSON。 –

回答

2

它不喜歡的「 - 」你的財產名稱,請嘗試:

state[0]['industry-type'] 
1

這是因爲你不能-直接訪問屬性。

var state = [{"industry-type":"football","your-role":"coach"}]; 
 

 
console.log(state[0]['industry-type']);

1

-符號在Javascript中保留的,你不能用它來指代一個對象的屬性JavaScript,因此認爲你試圖做減法:state[0].industry - type;因此錯誤「未捕獲的ReferenceError :type is not defined「 - 它正在尋找一個名爲type的變量來減去,它找不到。

相反,是指它由:

state[0]['industry-type'] 

因爲在Javascript,object.propertyobject['property']是相等的。


對於它的價值,如果你有過這些名字控制,在Javascript中的最佳實踐與Camel Case命名的東西,所以你的變量將被定義爲:然後

var state = [{"industryType":"football","yourRole":"coach"}] 

,你可以像訪問:

state[0].industryType 
1

爲了能夠使用點符號那麼你:

...property must be a valid JavaScript identifier, i.e. a sequence of alphanumerical characters, also including the underscore ("_") and dollar sign ("$"), that cannot start with a number.

MDN

像其他的答案中指出,你必須用方括號來訪問對象是不是有效的JavaScript標識的屬性名稱。

例如

state[0]["industry-type"] 

相關SO問題:

What characters are valid for JavaScript variable names?

0

你需要使用括號標記的屬性 -

state[0]['industry-type']