2016-02-03 241 views
-4

我想检查一个嵌套对象中的空值,我将如何循环通过嵌套的属性?通过嵌套对象属性循环

for (var propt in updatedInputs) { 

    if (updatedInputs[propt] == "") this.cancelSubmit(); 

    // check for nested properties 
    if (updatedInputs.hasOwnProperty(propt)) { 

    // loop through nested properties here 

    } 
} 

样本对象:

Object {contacts: Array[5]} 
    contacts: Array[5] 
    0: "04354355" 
    1: "24349878779" 
    2: "wqewqewqeqw" 
    3: "wqewqeqwe" 
    4: "" 
+3

请给出样本对象 –

+0

你是说如果其中一个嵌套属性是一个数组或对象? –

+0

该示例对象不是有效的js对象,语法错误。此外,你是否试图循环通过嵌套数组或嵌套对象? – nem035

回答

1

好啊,那我认为它会做你现在想要什么。

function iterObj(obj) { 

    for (var key in obj) { 
    console.log(key + ': ' + obj[key]); 
    if (obj[key] !== null && typeof obj[key] === "object") { 
     // Recurse into children 
     iterObj(obj[key]); 
    } 
    } 
} 
+0

只有当'updateInputs'是一个数组,但OP说他正在循环一个对象时,这才会起作用。对象上没有'forEach'这样的东西。 – nem035

+0

如果确实如此,那么'$ .each()'^ _ ^就没有意义了。 – nem035