Why not make a single array out of that ?
payload = [];
ngOnInit() {
this.statusService.getStatusDetails(this.statusObj).subscribe(
(data) => {
if(data.status == 26){
this.payload = data.payload[0]
.map((item, index) => ({ ...item, ...data.payload[1][index] }));
}
}
);
}
Snippet proving it works :
const d1 = [
{ id: 0 },
{ id: 1 },
];
const d2 = [
{ name: '0' },
{ name: '1' },
];
const d3 = d1.map((item, index) => ({ ...item, ...d2[index] }));
console.log(d3);
You can even build this merged payload if the arrays aren't the same length.
const d1 = [
{ id: 0 },
{ id: 1 },
];
const d2 = [
{ name: '0' },
{ name: '1' },
{ name: '2' },
];
const longest = d1.length > d2.length ? d1 : d2;
const shortest = d1.length <= d2.length ? d1 : d2;
const d3 = longest.map((item, index) => ({ ...item, ...shortest[index] }));
console.log(d3);
Angular version :
payload = [];
ngOnInit() {
this.statusService.getStatusDetails(this.statusObj).subscribe(
(data) => {
if(data.status == 26){
const longest = data.payload[0].length > data.payload[1].length ?
data.payload[0] : data.payload[1];
const shortest = data.payload[0].length <= data.payload[1].length ?
data.payload[0] : data.payload[1];
this.payload = longest
.map((item, index) => ({ ...item, ...shortest[index] }));
}
}
);
}
ngForon one array while using index to access the other array