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.
let obj1 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "ABCEFG"
},
{
"quantity": 1,
"ref": "HIJKLM"
},
{
"quantity": 1,
"ref": "ABCDEF"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
let obj2 = {
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 1,
"ref": "ABCEFG"
},
{
"quantity": 1,
"ref": "HIJKLM"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
Expected Output:
{
"obj": [
{
"name": "abc",
"obj": [
{
"name": "def",
"obj": [
{
"name": "ghi",
"data": [
{
"quantity": 2,
"ref": "ABCEFG"
},
{
"quantity": 2,
"ref": "HIJKLM"
},
{
"quantity": 1,
"ref": "ABCDEF"
},
{
"quantity": 1,
"ref": "XYZ123"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
],
"masterId": "07a5b470"
}
]
}
1