对象的对象总是用$ .each返回undefined

时间:2019-06-20 16:51:58

标签: javascript jquery object javascript-objects 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'])undefined不断返回status[1]时返回{ error: true }

1 个答案:

答案 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);