我已經在這個格式的值:靶向對象的數組在JavaScript
var state = [{"industry-type":"football","your-role":"coach"}]
我想輸出「足球」。我怎樣才能做到這一點?
我試過state[0].industry-type
但它返回一個錯誤:
Uncaught ReferenceError: type is not defined
任何幫助表示讚賞。
我已經在這個格式的值:靶向對象的數組在JavaScript
var state = [{"industry-type":"football","your-role":"coach"}]
我想輸出「足球」。我怎樣才能做到這一點?
我試過state[0].industry-type
但它返回一個錯誤:
Uncaught ReferenceError: type is not defined
任何幫助表示讚賞。
它不喜歡的「 - 」你的財產名稱,請嘗試:
state[0]['industry-type']
這是因爲你不能-
直接訪問屬性。
var state = [{"industry-type":"football","your-role":"coach"}];
console.log(state[0]['industry-type']);
的-
符號在Javascript中保留的,你不能用它來指代一個對象的屬性JavaScript,因此認爲你試圖做減法:state[0].industry - type;
因此錯誤「未捕獲的ReferenceError :type is not defined「 - 它正在尋找一個名爲type
的變量來減去,它找不到。
相反,是指它由:
state[0]['industry-type']
因爲在Javascript,object.property
和object['property']
是相等的。
對於它的價值,如果你有過這些名字控制,在Javascript中的最佳實踐與Camel Case命名的東西,所以你的變量將被定義爲:然後
var state = [{"industryType":"football","yourRole":"coach"}]
,你可以像訪問:
state[0].industryType
爲了能夠使用點符號那麼你:
...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問題:
你需要使用括號標記的屬性 -
state[0]['industry-type']
你有什麼是對象的數組(S ),而不是JSON。 –