0

In object, i have same keys in multiple instance, but the value is different like "string" / "object" - how to find the value and make a condition to go for different tasks..?

here is my object and try:

var obj = {
    "Home":"Home link",
    "Assignments":"Assignments link",
    "Explorer":"Explorer link",
    "Assignments":{
        "Projects":"Projects sub string",
        "Background Jobs":"Background sub string",
        "Workflow Engine Queue":"Workflow Engine Queue sub string",
        "Filter Engine Queue":"Filter Engine Queue sub string",
        "Quotes":"Quotes sub string",
        "Issues":"Issues sub string"
    },
    "Explorer":{
        "Term Databases":"Term Databases sub string",
        "Translation Memories":"Translation Memories sub string",
        "Personal Preferences":"Personal Preferences sub string",
        "Manage Locale":"Manage Locale sub string"
    }
}

var  objetProcess = function(){
    $.each(obj, function(key, value){
        console.log(key,$.type(value));
    })
}

objetProcess();

I am looking to loop the entire object and find the value is "string" or "object" - and set the task accordingly.

Here is the jsfiddle

4

2 回答 2

3

一个对象中不能有两个同名的键。在上面的示例中,Explorer 和 Assignments 键始终是对象,因为设置字符串值的语句后面跟着另一个设置对象值的语句。

您最简单的方法是将键名替换为其他名称,或者如果您尝试构建类似菜单层次结构的内容,则需要创建一个更复杂的数据结构来保存您的信息。想到这样的事情——

var menu = [{label: "Home", url: "link"},
            {label: "Assignments", url: "link",
             children: [{label: "Foo", url: "link"}, {label: "Bar", url: "link"}]
            },
            {label: "Explorer", url: "link",
             children: [{label: "Zac", url: "link"}, {label: "Cal", url: "link"}, {label: "Too", url: "link"}]
            }
           ];
于 2013-07-04T07:00:40.833 回答
0

您可以通过使用以下if条件来执行此操作objetProcess

var  objetProcess = function(){
    $.each(obj, function(key, value){
        if ($.type(value) === 'string') {
            console.log('string task');
        } else if ($.type(value) === 'object') {
            console.log('object task');
        }
    })
}

http://jsfiddle.net/qS6H2/5/

于 2013-07-04T06:49:11.530 回答