Path to matching key value pair in a nested object

后端 未结 1 1344
谎友^
谎友^ 2020-12-11 06:37

I was trying to implement a search in a nested object.

   // Returns an array of matching objects
    function getObjects(obj, key, val) {
        var object         


        
相关标签:
1条回答
  • 2020-12-11 07:05

    I have wrote a custom function

    function objPath(obj, key, val, path) {
        var result = [];
        var passName = '';
        if (path) {
            passName = path;
        }
        var tempArray = [];
        for (var prop in obj) {
            var value = obj[prop];
            if (typeof value === 'object') {
                tempArray = objPath(value, key, val, passName);
                $.each(tempArray, function (k, value) {
                    result.push(value);
                });
            } else if (!$.isNumeric(obj[key]) && prop == key && obj[key].toLowerCase().match(val)) {
                result.push(passName + '["' + obj[prop] + '"]');
            } else {
                if ($.isNumeric(obj[prop])) {
                    //passName += ' > ' + obj[prop];
                } else {
                    passName += '["' + obj[prop] + '"]';
                }
            }
        }
        return result;
    }
    

    Which will return

    ["Categories"]["Product2"]["b03"]
    
    0 讨论(0)
提交回复
热议问题