2011-10-25 41 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