我有这个JS输出
我正在尝试使用这种方法访问ModelState数组的第一个成员:
console.log(data.ModelState[0]);
但是我得到了未定义的错误。
同样在尝试做警报(data.ModelState)时,我正在获取Object对象。
如何访问ModelState数组中的第一个值?
答案 0 :(得分:0)
您必须使用data.ModelState[''][0]
访问它。看来你有一个嵌套数组,包含两个字符串的数组元素有一个空的或只有空格的索引字符串。
答案 1 :(得分:0)
[object Object]
是你的第一个线索 - 虽然我无法重现你的确切问题,看起来你认为是一个数组的对象实际上是JavaScript Object,这是一个不同的数据结构。 JS对象与其他面向对象语言的对象非常相似。正如您所注意到的,他们的字符串表示是[object Object]]
,无论其内容如何。
> String({})
< "[object Object]"
> String({abc: "foo", def: "bar"})
< "[object Object]"
如果您使用有关如何重现问题的步骤更新您的问题,我可以提供更多帮助,但我希望这足以让您走上正确的轨道!
答案 2 :(得分:0)
我看来你的数据包含一个空格或空白键的数组。所以它很可能看起来像这样
{
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]);
}