2013-07-19 47 views
2

如何檢查json對象中的所有鍵是否等於true? 我物體看起來像這樣如何檢查json中的所有鍵是否等於true

success = { 
    "first_name": false, 
    "middle_name": false, 
    "last_name": false, 
    "d_o_b": false, 
    "sex": false, 
    "email": false, 
    "re_email": false, 
    "password": false, 
    "re_password": false 
}; 

我proccess的對象和原來確定被改變爲真正的每一件事情, 現在我要檢查,如果一切屬實結束,我該怎麼辦呢? 謝謝:-)

回答

11

或者多一點功能:

Object.keys(success).every(function(key) { 
    return success[key]; 
}); 
+1

+1 - 你可能會注意的,就是這個代碼將在舊的瀏覽器失敗。 –

+0

傷心,但是真的... – sabof

+0

以前從來沒有見過。真棒! – MaxPRafferty

2

最簡單的方法是使用for循環。這將確保它可以與可能不支持迭代器的舊瀏覽器一起工作。

var all_true = true; 
for (var s in success) { 
    if (!success[s]) { 
     all_true = false; 
     break; 
    } 
} 

break並非絕對必要,但將短路循環,如果所有你關心如果沒有一個是假的。

2
var everythingOK = true; 

for (var i = 0; i < success.length; i++) 
{ 
    if(! success[i]) 
    { 
     everythingOK = false; 
     break; 
    } 
} 


if(everythingOK) 
    alert('Success!'); 

本應該做的;)

相關問題