I use the following to merge sub-arrays:
var myArray = [
{
"QuestionId": 1,
"mySeries": [{ "name": "Male", "data": [1] }],
"mySeries1": [
{ "name": "Male", "data": [0] },
{ "name": "Female", "data": [0] },
{ "name": "Unknown", "data": [0] }
],
"mySeries3": []
},
{
"QuestionId": 2,
"mySeries": [{ "name": "Banana", "data": [1] }],
"mySeries1": [
{ "name": "Orange", "data": [0] },
{ "name": "Banana", "data": [0] },
{ "name": "None", "data": [0] }
],
"mySeries3": []
}
];
var res = [];
for (let i = 0; i < myArray.length; i++) {
res = myArray[i].mySeries1.map(obj => myArray[i].mySeries.find(o => o.name === obj.name) || obj);
myArray[i].mySeries3.push(res);
It works; however, I get double square brackets:
"mySeries3": **[** [
{ "name": "Orange", "data": [0]},
{ "name": "Banana","data": [1]},
{"name": "None", "data": [0]
] **]**
Is push the correct way?