对象的对象总是用 $.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) });

分别打印 1210 键和 ...

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