jQuery - How to recursively loop over an object's nested properties?

后端 未结 5 1268
执笔经年
执笔经年 2020-12-16 20:46

Is there are a way to recursively loop over all the nested properties of a JS/jQuery object?

For example, given this object

var x = {
    \'name\': \         


        
5条回答
  •  臣服心动
    2020-12-16 21:10

    I was originally looking for a way to search a javascript object recursively and I found this post very helpful, in particular Jeroen Moons's answer. I have tweaked it to provide a return object. Input is object to search and a {key:value} object (needle).

    function searchObject(object, keyvalue){
        var found = false;
        for (var property in object){
            if (object.hasOwnProperty(property)){
                if (typeof object[property] == 'object'){
                    found = searchObject(object[property], keyvalue);
                    if (found)
                        return found;
                }else{
                    key = Object.keys(keyvalue)[0];
                    if (property == key && object[key] == keyvalue[key]){
                        console.log('searchObject ' + keyvalue[key] + ' found');
                        return object;
                    }
                }
            }
        }
    }
    

提交回复
热议问题