也许有些愚蠢,但是我有这个status
对象的JS对象(通过 console.log(status)获得):
{1: {…}, 2: {…}, 10: {…}}
1:
error: true
__proto__: Object
2:
validated: false
value: 0
whitelist: false
__proto__: Object
10:
validated: false
value: 0
whitelist: false
__proto__: Object
__proto__: Object
那我有:
$.each( status, function( key, value ) {
console.log(key);
console.log(value)
});
分别打印1
,2
和10
作为键和...
{}
error: true
__proto__: Object
{}
validated: false
value: 0
whitelist: false
__proto__: Object
{}
validated: false
value: 0
whitelist: false
__proto__: Object
...用于值。到目前为止,一切都很好。但是,当我尝试访问内部对象的任何键 时,例如
$.each( status, function( key, value ) {
console.log(value.validated);
console.log(value['error'])
});
...无论如何我都会得到undefined
:使用点语法,数组语法等。
有想法吗?
编辑:太奇怪了,这不是因为$.each
是因为做一个简单的
console.log(status[1]['error'])
在undefined
不断返回status[1]
时返回{ error: true }
。
答案 0 :(得分:0)
您的数组包含不同的属性,因此访问属性error
将返回undefined
,因为它在索引1和2中都不存在,而仅在0中存在。
$.each (status, function(i, item)
{
if (item.error != undefined)
// do something
if (item.validated != undefined)
// do something
});
最后,关于您的编辑,正如我在第一段中所述,error
属性在索引1中不存在,因此以下代码应返回预期结果。
console.log(status[0].error);