First we need to check the masterId at each level if its equal at each level than we need to check for ref, if ref is equal than add the quantity of both unique ref.
<code>let obj1 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
<code>let obj1 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
let obj1 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
<code>let obj2 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
<code>let obj2 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
let obj2 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "SR2A101FU"
},
{
"quantity": 1,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
Expected Output:
<code>{
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 2,
"ref": "SR2A101FU"
},
{
"quantity": 2,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
<code>{
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 2,
"ref": "SR2A101FU"
},
{
"quantity": 2,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
</code>
{
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 2,
"ref": "SR2A101FU"
},
{
"quantity": 2,
"ref": "SR2CBL01"
},
{
"quantity": 1,
"ref": "ABCDEF"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}