2016-02-05 56 views
-1

所以,我有以下JS:JS檢查obj是可用

var NAMES = { 

'185' : { 
     'FIRST'  : 'first', 
     'MIDDLE' : 'middle', 
     'LAST'  : 'last' 
    } 
}; 

for (var j = 0; j < (id.length); j++) {   
    var uDATA_ID = id[j]; //string 
    var uDATA_OBJ = JSON.parse(uDATA_ID); //converted to object    
    if (uDATA_ID == NAMES.uDATA_OBJ){ 
     alert("Somethings happening");        
    } 
} 

所以,我得到的從PHP id個字符串。我需要檢查這個數字是否在對象變量中可用。

但是,我很難讓它工作。

有人可以幫我嗎?

感謝

+0

'uDATA_ID == NAMES.uDATA_OBJ'對我來說沒有什麼意義。應該做什麼? –

+0

Sp。 'uDATA_ID'的值是「185」。我想看看頂部數組是否包含相同的值。 –

+0

[使用變量動態訪問對象屬性](http://stackoverflow.com/q/4244896/218196)和[檢查對象屬性是否存在 - 使用變量](http://stackoverflow.com/q/11040472/218196) –

回答

1

要使用一個變量來訪問對象的字段,使用[field]語法而不是.field語法:

var data = NAMES[uDATA_ID] 

如果該字段缺失,它將返回undefined(你可以然後檢查)

if (data) { // assumes you don't want `false` or `0`. 
+0

謝謝。這有點令人沮喪,因爲一些來自SO的回答有不同的語法格式。感謝您的澄清。謝謝! –

+0

只是一個簡單的問題。我將如何檢查「頂部」數組是否包含相同的對象? (例如,'if(typeof uDATA_ID == NAMES [uDATA_OBJ])')? –

+0

http://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects – Thilo