2011-10-25 100 views
1

這僅僅是一個例子。然而,我正在做的基礎是通過一個循環,其中循環中的一個對象可以具有下面的對象之一我想要做的就是在下面的對象中查找是否與我正在循環的對象相匹配通過哪裏如果有匹配我想使用下面匹配值的對象。對象是否存在? JavaScript對象

prettyNames = { 
    "namenode": "Name Nodes", 
    "secondarynamenode":"Secondary Name Nodes", 
    "datanode":"Data Nodes", 
    "web":"Web", 
    "tasktracker":"Task Trackers", 
    "jobtracker":"Job Trackers", 
    "oozie":"Oozie", 
    "single-namenode":"Single NameNode", 
    "single-databse":"Single Database" 
}; 

所以,我知道如何用PHP做到這一點,我想我知道我怎麼用javascript做到這一點。然而,它沒有像我想的那樣工作,所以我正在尋找如何正確處理它的想法。

編輯 我所擁有的是一個JSON對象,我通過迭代通過每個樣式循環。其中JSON內的其中一個對象更像是系統輸出中的ID。我想要做的是在運行該循環時將該對象作爲變量並將其與prettyNames對象中的變量/對象進行比較,因此如果它在prettyNames中找到,它將使用該值而不是默認系統輸出。最終我也試圖避免最終有幾十個嵌套if語句來做同樣的事情

+2

我已經讀了幾次,但仍然沒有完全理解它。你有一系列你正在循環的對象嗎? – pimvdb

+1

請說明你的問題。目前還不清楚你在問什麼。 – jfriend00

回答

1
var _key = 'namenode'; 

for(var i in prettyNames) { 
    // i will container the keys 
    if (i == _key){ 
     //prettyName[i] will be your value 
    } 
}
+1

循環瀏覽'prettyNames'沒有意義。您的代碼可以替換爲:if(prettyNames [_key])'或this:'if(_key in prettyNames)'。儘管如此,我不得不承認,我無法分辨OP究竟在問什麼。 – jfriend00

+0

我只需要採取var並將其與prettyNames中的某些東西進行比較,如果它在prettyNames中找到,則使用找到的對象的prettyNames值,但是如果未找到,請使用var的默認值 – chris

+0

是啊,我的啞巴...是思考循環becaise多數民衆贊成在什麼問題要求 – locrizak