Each recursive iteration.
{
"branches": [
{
"@xsi.type": "class",
"id": "_77607",
"name": "нет",
"predicate": {
"literal": "2=2",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
},
"order": "0"
},
{
"@xsi.type": "class",
"id": "_77601",
"name": "да",
"predicate": {
"literal": "1=1",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
},
"order": "1"
},
{
"@xsi.type": "choose",
"id": "",
"branches": [
{
"@xsi.type": "class",
"id": "",
"name": "да",
"predicate": {
"literal": "3.1 = 3.1",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 9,
"branches": [
{
"token": "const_float",
"begin": 0,
"end": 3
},
{
"token": "const_float",
"begin": 6,
"end": 9
}
]
}
},
"order": "3"
},
{
"@xsi.type": "class",
"id": "",
"name": "нет",
"predicate": {
"literal": "3.2 = 3.2",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 9,
"branches": [
{
"token": "const_float",
"begin": 0,
"end": 3
},
{
"token": "const_float",
"begin": 6,
"end": 9
}
]
}
},
"order": "4"
},
{
"@xsi.type": "class",
"id": "",
"name": "подумаю",
"order": "5"
}
],
"predicate": {
"literal": "3=3",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
},
"order": "2"
},
{
"@xsi.type": "class",
"id": "_77602",
"name": "подумаю",
"order": "6"
}
]
}
// Add order value each branches
var iterator = 0;
_.each(data.branches, function(branch) { recursiveFunction(branch) });
function recursiveFunction(branch) {
branch.order = (iterator++).toString();
if (branch.branches) {
_.each(branch.branches, function(branch) {
recursiveFunction(branch)
});
}
}
console.log(data);
var data = {};
data.branches = [
{
"@xsi.type": "class",
"id": "_77607",
"name": "нет",
"predicate": {
"literal": "2=2",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
}
},
{
"@xsi.type": "class",
"id": "_77601",
"name": "да",
"predicate": {
"literal": "1=1",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
}
},
{
"@xsi.type": "choose",
"id": "",
"branches": [
{
"@xsi.type": "class",
"id": "",
"name": "да",
"predicate": {
"literal": "3.1 = 3.1",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 9,
"branches": [
{
"token": "const_float",
"begin": 0,
"end": 3
},
{
"token": "const_float",
"begin": 6,
"end": 9
}
]
}
}
},
{
"@xsi.type": "class",
"id": "",
"name": "нет",
"predicate": {
"literal": "3.2 = 3.2",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 9,
"branches": [
{
"token": "const_float",
"begin": 0,
"end": 3
},
{
"token": "const_float",
"begin": 6,
"end": 9
}
]
}
}
},
{
"@xsi.type": "class",
"id": "",
"name": "подумаю"
}
],
"predicate": {
"literal": "3=3",
"dialect": "V1",
"root": {
"token": "equal",
"begin": 0,
"end": 3,
"branches": [
{
"token": "const_int",
"begin": 0,
"end": 1
},
{
"token": "const_int",
"begin": 2,
"end": 3
}
]
}
}
},
{
"@xsi.type": "class",
"id": "_77602",
"name": "подумаю"
}
];