对象的对象总是用 $.each 返回 undefined
Object of objects always returning undefined with $.each
也许有些愚蠢,但我有这个 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'])
returns undefined
当 status[1]
不断返回 { error: true }
.
您的数组包含不同的属性,因此访问 属性 error
将 return undefined
因为它不存在于索引 1 和 2 中,仅存在于 0 中。
$.each (status, function(i, item)
{
if (item.error != undefined)
// do something
if (item.validated != undefined)
// do something
});
最后,关于您的编辑,如我第一段所述,索引 1 中不存在 error
属性,因此以下代码应该 return 预期结果。
console.log(status[0].error);
也许有些愚蠢,但我有这个 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'])
returns undefined
当 status[1]
不断返回 { error: true }
.
您的数组包含不同的属性,因此访问 属性 error
将 return undefined
因为它不存在于索引 1 和 2 中,仅存在于 0 中。
$.each (status, function(i, item)
{
if (item.error != undefined)
// do something
if (item.validated != undefined)
// do something
});
最后,关于您的编辑,如我第一段所述,索引 1 中不存在 error
属性,因此以下代码应该 return 预期结果。
console.log(status[0].error);