I have this array of objects:
let rooms = [
{
room: "S2D", rate: "24"
},
{
room: "S2D", rate: "23"
},
{
room: "SEC", rate: "24"
},
{
room: "SEC", rate: "23"
},
{
room: "SST", rate: "24"
},
{
room: "SST", rate: "23"
}
];
I'm looking forward to achieve something like this:
{
S2D: {
24: {},
23: {}
},
SEC: {
24: {},
23: {}
}
}
I have tried doing this way but the output is not the same as expected. I'm have some trouble when adding the rates inside room objects even though I'm adding spread operator to keep the previous values.
rooms.map((elem, idx) => {
let {room, rate} = elem;
room_rates[room] = {};
if(!room_rates[room]?.hasOwnProperty(rate)){
room_rates[room] = {
...room_rates[room],
[rate]:{}
}
}
})
OUTPUT
{
S2D:{
23: {}
},
SEC:{
23: {}
},
SST:{
23: {}
}
}