|
| 1 | +// Initial data |
| 2 | + |
| 3 | +const missions = [ |
| 4 | + ['Apollo 11', 1969, 'Success', ['Neil Armstrong', 'Buzz Aldrin']], |
| 5 | + ['Voyager 1', 1977, 'Success', ['N/A']], |
| 6 | + ['Hubble Telescope', 1990, 'Success', ['N/A']], |
| 7 | + ['Mars Rover', 2003, 'Success', ['N/A']], |
| 8 | + ['ISS Expedition 1', 2000, 'Success', ['William Shepherd', 'Yuri Gidzenko', 'Sergei Krikalev']], |
| 9 | + ['Artemis I', 2022, 'Success', ['N/A']], |
| 10 | + ['Starship Launch', 2023, 'Failed', ['N/A']], |
| 11 | + ['Mars Sample Return', 2027, 'In Progress', ['N/A', 'N/A']] |
| 12 | +]; |
| 13 | + |
| 14 | +console.groupCollapsed(`List of space missions`); |
| 15 | +function displayMissions (spaceMissions){ |
| 16 | + console.log(`🚀 Original list of space missions: `); |
| 17 | + console.table(spaceMissions); |
| 18 | + } |
| 19 | +displayMissions(missions); |
| 20 | +console.groupEnd(); |
| 21 | + |
| 22 | +// 1 - Get All Successfull Misssions |
| 23 | + |
| 24 | +console.groupCollapsed(`I. Get All Successfull Missions`); |
| 25 | +function getAllSuccessfullMissions(spaceMissions){ |
| 26 | + let success = spaceMissions.filter((mission) => mission[2] === 'Success'); |
| 27 | + let successNames=success.map((mission) => mission[0]); // only the names |
| 28 | + console.log(`🛰️ Names of sucessfull missions: `,successNames); |
| 29 | +} |
| 30 | +getAllSuccessfullMissions(missions); |
| 31 | +console.groupEnd(); |
| 32 | + |
| 33 | +// 2 - Get Average Crew Size By Decade |
| 34 | + |
| 35 | +// 3 - Find Unique Crew Members |
| 36 | + |
| 37 | +console.groupCollapsed('III. Find Unique Crew Members') |
| 38 | +function findUniqueCrewMembers(spaceMissions){ |
| 39 | + const onlyCrew = spaceMissions.map((mission)=> mission[3]); //get 3rd index from each mission(crew) |
| 40 | + const flattenedCrew = onlyCrew.flat((Infinity)); |
| 41 | + const filteredMembers = flattenedCrew.filter(member => member !== 'N/A'); // filter - not 'N/A' |
| 42 | + const uniqueMembers = [...new Set(filteredMembers)]; // remove potential duplicates [...new Set()] |
| 43 | + console.log(`👨🚀 Unique crew members are: : ${uniqueMembers}.`); |
| 44 | +return uniqueMembers; |
| 45 | +} |
| 46 | +findUniqueCrewMembers(missions); |
| 47 | + |
0 commit comments