我尝试了不同的方法来访问数组,我还没有能够
这是我的阵列:
Sites [
{
"0": {
"catf":
{
"2": { "cats": { "id": "9" } },
"4": { "cats": { "id": "12" } },
"5": { "cats": { "id": "13" } }
}
}
},
{
"1": {
"catf":
{
"2": { "cats": { "id": "10" } },
"4": { "cats": { "id": "11" } }
}
}
}]
这就是我尝试访问数组的方式
$scope.proposal2.sites[0].catf[2];
这是错误
Cannot read property '2' of undefined
当我打印console.log($scope.proposal2.sites[0])
时,我得到了这个
Object {0: Object, $$hashKey: "00L"} >0: Object >catf: Object >2: Object >cats: Object id: >"10"
我怎么能访问它?
谢谢,
答案 0 :(得分:1)
$scope.proposal2.sites[0].catf[2];
在上面的代码行中,sites
是一个数组对象,因此您可以在这里访问数据,但catf
是Object
,因此您会遇到类似“不能”的问题读取未定义的属性'2'。
答案 1 :(得分:1)
在您的代码中,您使用两个对象声明了数组。要访问其中的第一个,您应该使用$scope.proposal2.sites[0]
。那么这个对象只有一个键 - 0
:
{
"0": {
"catf":
{
"2": { "cats": { "id": "9" } },
"4": { "cats": { "id": "12" } },
"5": { "cats": { "id": "13" } }
}
}
},
所以您使用$scope.proposal2.sites[0][0]
访问它以获取只有一个键catf
的对象:
{
"catf":{
"2": { "cats": { "id": "10" } },
"4": { "cats": { "id": "11" } }
}
}
现在您使用$scope.proposal2.sites[0][0].catf[2]
来访问您想要的内容。
我同意charlietfl的评论,因为你的结构看起来太复杂了,也许你想要这样的东西:
[
{"catf": {
"2": { "cats": { "id": "9" } },
"4": { "cats": { "id": "12" } },
"5": { "cats": { "id": "13" } }
}
},
{"catf": {
"2": { "cats": { "id": "10" } },
"4": { "cats": { "id": "11" } }
}
}
]
并使用$scope.proposal2.sites[0].catf[2]
另外我相信甚至可以(而且应该)简化这种结构,但是为了配合它,你应该提供更多关于你的任务的信息。
答案 2 :(得分:0)
我发现问题的答案是:$ scope.proposal2.sites [0] [0] .catf [2]
感谢所有人