/* eslint-disable no-plusplus */ export interface Passenger { passengerType: number; age?: number; } export interface PassengerGroup { passengers: Passenger[]; } export interface InputData { employee?: { count: number; }; guest?: { count: number; }; child?: { count: number; ages?: number[]; }; } export function convertToDesiredFormat(datas: InputData[]): PassengerGroup[] { const passengerGroups: PassengerGroup[] = []; datas.forEach((data) => { const passengers: Passenger[] = []; if (data?.guest?.count && data.guest.count > 0) { for (let i = 0; i < data.guest.count; i++) { passengers.push({ passengerType: 0 }); } } if ( data?.child?.count && data.child.count > 0 && data?.child.ages && data.child.ages.length > 0 ) { for (const age of data.child.ages) { passengers.push({ passengerType: 1, age }); } } if (passengers.length > 0) { passengerGroups.push({ passengers }); } }); return passengerGroups; }