I am trying to merge two following Arrays and create a new one, for some reason my forEach loop inside Else statement return undefined. Not sure if I am doing anything wrong or forEach not supposed to be inside else statement? if there's any other approach to get the exact result please let me know.
stackblitz : https://stackblitz.com/edit/angular-ivy-145nbf?file=src%2Fapp%2Fapp.component.ts
public merged = [];
public ArrayOne = [
{
time: "05:00 PM",
maxNumber: 4
},
{
time: "05:30 PM",
maxNumber: 4
},
{
time: "06:30 PM",
maxNumber: 4
}
];
public ArrayTwo = [
{
active: 2,
time: "05:00 PM"
}
];
mergeArray() {
let t = this.ArrayOne.map((element, i) => {
let d = {
time: element.time,
maxNumber: element.maxNumber,
active: this.getActive(this.ArrayTwo)
};
this.merged.push(d);
console.log(d);
});
}
getActive(arr2) {
if (arr2.length === 0 || arr2 === null || arr2 === undefined) {
return 0;
} else {
arr2.forEach((element, i) => {
if (element.time === this.ArrayOne[i].time) {
return element.active;
} else {
return 0;
}
});
}
}
Expected Result
public merged = [
{
time: "05:00 PM",
maxNumber: 4,
active: 2
},
{
time: "05:30 PM",
maxNumber: 4,
active: 0
},
{
time: "06:30 PM",
maxNumber: 4,
active: 0
}
];