动态浏览对象

时间:2016-09-14 17:02:16

标签: javascript object

所以我有一个看起来像的对象:

var computer={
"Home":{
    "Applications":{
        "Desktop":{

        },
        "Documents":{

        },
        "Downloads":{

        },
        "Library":{

        },
        "Movies":{

        },
        "Music":{

        },
        "Pictures":{

        }
    }
},
"Library":{

},
"Downloads":{

},
"Files":{

},
"Devices":{
    "USB":{

    },
    "Hard_Drive":{

        }

    }
}

我还有一个输入框,应该接收用户对location的输入。然后使用console.log(computer[location]);查找该位置应该显示该对象的所有子项。所以基本的想法是:

var location = document.getElementById("inputId");
console.log(computer[location]);

我可以使用哪些模式来完成这项工作?我也愿意改变将计算机作为对象或任何其他变化的想法。我只需要做这个工作。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想我终于明白了。此代码将遍历对象,如果找到该字符串,则将值设置为“target”变量。

        var obj = {
            name: "Darin",
            age: 30,
            occupation: "Programmer",
            employers: {
                burgerKing:{
                    name: "Burger King",
                    startDate: "2001",
                    endDate: "2006"                 
                }
            }
        }   



        var target = null; //the final value is stored here

        function finder(obj, key){

            $.each(obj, function(k,v){

                if(typeof v == "object"){
                    finder(v, key); 
                }
                else{
                    if(k == key) target = v;
                }           
            });     
        }


        finder(obj, "startDate");