I have a promise.all that returns 2 objects. The common element in these 2 seperate objects is room.
I want both object to be in 1 array, and if the room matches, I would like to concat the objects.
const urls = ['/room/*/userconfig', '/room/*/observation/latest'];
let requests = urls.map(url => axios.get(url));
Promise.all(requests)
.then(res => {
let patientObjArray = Object.values(res[0].data);
let patientObservationsArray = Object.values(res[1].data);
})
const patientObjArray = [
{
room: "room18",
patient: "91911671-302b-47b5-a24d-d2a1fea548d6",
hospitalNumber: "12"
},
{
room: "room19",
patient: "b793bbba-b2bb-4995-9247-bb4d4f2be65a",
hospitalNumber: "13"
},
{
room: "room20",
patient: "a8e8efa1-ea00-4d32-b4b2-58727200b9b0",
hospitalNumber: "14"
},
{
room: "room21",
patient: "asdadddaddada-b4badasd2-7272a00qb9b0",
hospitalNumber: "15"
}
];
// patientObservationsArray is data related to patientObjArray.room
const patientObservationsArray = [
{
observation: {
room: "room18",
timestamp: "10:00",
patient: "91911671-302b-47b5-a24d-d2a1fea548d6"
},
comment: { value: "Ok" }
},
{
observation: {
room: "room19",
timestamp: "11:00",
patient: "b793bbba-b2bb-4995-9247-bb4d4f2be65a"
},
comment: { value: "Good" }
},
{
observation: {
room: "room20",
timestamp: "12:00",
patient: "a8e8efa1-ea00-4d32-b4b2-58727200b9b0"
},
comment: { value: "bad" }
}
];
expected output
const combinedArray = [
{
room: "room18",
patient: "91911671-302b-47b5-a24d-d2a1fea548d6",
hospitalNumber: "12",
timestamp: "10:00",
comment: "Ok"
},
{
room: "room19",
patient: "b793bbba-b2bb-4995-9247-bb4d4f2be65a",
hospitalNumber: "13",
timestamp: "11:00",
comment: "Good"
},
{
room: "room20",
patient: "a8e8efa1-ea00-4d32-b4b2-58727200b9b0",
hospitalNumber: "14",
timestamp: "12:00",
comment: "Bad"
},
{
room: "room21",
patient: "asdadddaddada-b4badasd2-7272a00qb9b0",
hospitalNumber: "15"
}
];