簡體   English   中英

嘗試訪問 JS 中的數組對象給我未定義

[英]Trying to access array object in JS gives me undefined

我有這個 JS 輸出

在此處輸入圖片說明

我正在嘗試使用這種方法訪問 ModelState 數組的第一個成員:

console.log(data.ModelState[0]);

但我收到未定義的錯誤。

同樣在嘗試執行 alert(data.ModelState) 時,我正在獲取 Object 對象。

如何訪問 ModelState 數組中的第一個值?

您必須使用data.ModelState[''][0]訪問它。 似乎您有一個嵌套數組,其中包含兩個字符串的數組元素有一個空的或只有空格的字符串作為索引。

[object Object]是你的第一個線索——雖然我無法重現你的確切問題,但看起來你認為是數組的對象實際上是一個JavaScript Object ,它是一種不同的數據結構。 JS 對象與其他面向對象語言的對象非常相似。 正如您所注意到的,它們的字符串表示是[object Object]] ,而不管它們的內容如何。

> String({})
< "[object Object]"
> String({abc: "foo", def: "bar"})
< "[object Object]"

如果您用重現問題的步驟更新您的問題,我可以提供更多幫助,但我希望這足以讓您走上正軌!

我似乎您的數據包含一個具有空白或空格鍵的數組。 所以它很可能看起來像這樣

{
    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]); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM