I need to parse an API to my application, to get this array of objects:
parsedPlan = [{
id: "start"
small_degressive_rate: 0.22
small_hourly_rate: 2
large_degressive_rate: 0.27
large_hourly_rate: 4.2
},
{
id: "bonus"
small_degressive_rate: 0.21
small_hourly_rate: 1.75
large_degressive_rate: 0.26
large_hourly_rate: 3.55
},
...
]
I tried to filter api data to get the values needed, and then push to a new array: parsedPlan
.
import axios from 'axios';
export function parsedPlan() {
const api = '##########';
const element = {};
const parsedPlan = [];
element.id = '';
element.small_hourly_rate = '';
element.small_degressive_rate = '';
element.large_hourly_rate = '';
element.large_degressive_rate = '';
axios.get(`${api}/car_prices`)
.then((response) => {
const smallPlan = response.data.filter(plan => plan.size == 'S');
smallPlan.map((plans) => {
parsedPlan.push({
id: plans.plan,
small_hourly_rate: plans.hourly_rate,
small_degressive_rate: plans.distance_degressive_rate,
});
});
const largePlan = response.data.filter(plan => plan.size == 'XL');
largePlan.map((plans) => {
parsedPlan.push({
id: plans.plan,
large_hourly_rate: plans.hourly_rate,
large_degressive_rate: plans.distance_degressive_rate,
});
});
})
.catch((error) => {
console.log(error);
});
return parsedPlan;
}
For now my parsedPlan
looks like this:
parsedPlan = [{
id: "start"
small_degressive_rate: 0.22
small_hourly_rate: 2
},
{
id: "bonus"
small_degressive_rate: 0.21
small_hourly_rate: 1.75
},
...
{
id: "start"
large_degressive_rate: 0.27
large_hourly_rate: 4.2
},
{
id: "bonus"
large_degressive_rate: 0.26
large_hourly_rate: 3.55
},
...
]
And I would like to merge objects with same id
. Any ideas how I can get the expected result ?