我有這個js輸出JS試圖訪問數組對象給我不確定
我試圖使用這種方法來訪問ModelState中數組的第一個成員:
console.log(data.ModelState[0]);
但我得到未定義的錯誤。
此外,當試圖做alert(data.ModelState)我得到對象的對象。
任何想法如何訪問ModelState數組中的第一個值?謝謝
我有這個js輸出JS試圖訪問數組對象給我不確定
我試圖使用這種方法來訪問ModelState中數組的第一個成員:
console.log(data.ModelState[0]);
但我得到未定義的錯誤。
此外,當試圖做alert(data.ModelState)我得到對象的對象。
任何想法如何訪問ModelState數組中的第一個值?謝謝
我看起來你的數據包含一個空白或空白鍵的數組。因此,它最有可能是這樣的
{
ModelState: {
"": [ "string1", "string2" ]
}
}
您需要通過密鑰才能訪問它在那裏,只要你知道它是什麼,例如data.ModelState[""][1] //"string1"
也有選擇,如果你不知道他們的關鍵是還是想不太脆代碼:
var data = {
ModelState: {
"": [ "string1", "string2" ]
}
};
console.log("--Using Object.keys--")
Object.keys(data.ModelState).forEach(function(key) {
console.log(data.ModelState[key]);
})
console.log("--Using for...in loop--")
for (var key in data.ModelState) {
console.log(data.ModelState[key]);
}
您將不得不使用data.ModelState[''][0]
訪問它。看起來你有一個嵌套數組,其中包含兩個字符串的數組元素具有一個空索引或一個空白字符串。
[object Object]
是你的第一個線索 - 雖然我不能重現你確切的問題,但它看起來像你認爲是一個數組實際上是一個JavaScript Object,這是一個不同的數據結構。 JS對象與其他面嚮對象語言的對象非常相似。正如你所注意到的,它們的字符串表示形式是[object Object]]
,不管它們的內容如何。
> String({})
< "[object Object]"
> String({abc: "foo", def: "bar"})
< "[object Object]"
如果你更新有關如何重現它,我可以幫助更多,步驟,你的問題,但我希望這是足以讓你在正確的軌道上!
我相信是有對象空白鍵(或可能是空格?),它有一個數組作爲值。所以你需要像'data.ModelState [「」] [0]' – vlaz
你在測試這個瀏覽器? @Laziale –
@RanojitBanerjee這就是Firefox。更具體地說,Firebug擴展。 – vlaz