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