SOURCE

var obj = {
    "condition": "AND",
    "rules": [
        {
            "id": "name",
            "operator": "=",
            "value": "12",
            "type": "string"
        },
        {
            "condition": "AND",
            "rules": [
                {
                    "id": "description",
                    "operator": "=",
                    "value": "lz",
                    "type": "string"
                }
            ]
        },
        {
            "id": "description",
            "operator": "=",
            "value": "zzzz",
            "type": "string"
        }
    ]
}
var index = 0;

var ruleObj = { groupList:[], ruleList:[], conditions:[] };

var createRules = (arr, ruleObj) => {
    arr.forEach((rule) => {
        if (rule.rules && rule.rules.length > 0) {
        const subObj = { groupList:[], ruleList:[], conditions:[] };
        subObj.conditionsValue = rule.condition;
        ruleObj.groupList.push(subObj);
        createRules(rule.rules, subObj);
        } else {
        ruleObj.ruleList.push({
            id: index++
        });
        }
    });
}

createRules(obj.rules, ruleObj);

console.log(JSON.stringify(ruleObj, null, 4));
console 命令行工具 X clear

                    
>
console