Skip to content

Instantly share code, notes, and snippets.

@Naomi-Dennis
Last active December 26, 2019 16:33
Show Gist options
  • Save Naomi-Dennis/ae9a00a1850b6f103413674108359550 to your computer and use it in GitHub Desktop.
Save Naomi-Dennis/ae9a00a1850b6f103413674108359550 to your computer and use it in GitHub Desktop.
class Passenger {
constructor(name, flightClass) {
this.name = name;
this.flightClass = flightClass;
}
}
let rawListOfPassengers = Array.from(document.querySelectorAll("form div"));
let allPassengers = [];
let passengersInFirstClass = [];
let passengersInBusinessClass = [];
let passengersInEconomyClass = [];
let boardedPassengers = [];
function parsePassengerInput(passengerData) {
let name = passengerData.querySelector("span").innerText;
let isFirstClass = passengerData.querySelector(".firstClass").checked;
let isBusinessClass = passengerData.querySelector(".businessClass").checked;
let isEconomyClass = passengerData.querySelector(".economyClass").checked;
return {
"name": name,
"firstClass": isFirstClass,
"businessClass": isBusinessClass,
"economyClass": isEconomyClass
};
}
function separatePassengerIntoFlightClass(passenger, passengerData) {
if (passengerData.firstClass) {
passenger.flightClass = "First Class"
passengersInFirstClass.push(passenger);
}
else if (passengerData.businessClass) {
passenger.flightClass = "Business Class"
passengersInBusinessClass.push(passenger);
}
else if (passengerData.economyClass) {
passenger.flightClass = "Economy Class"
passengersInEconomyClass.push(passenger);
}
}
function boardPassengers() {
passengersInFirstClass.map((passenger) => { boardedPassengers = boardedPassengers.concat(passengersInFirstClass) })
passengersInBusinessClass.map((passenger) => { boardedPassengers = boardedPassengers.concat(passengersInBusinessClass) })
passengersInEconomyClass.map((passenger) => { boardedPassengers = boardedPassengers.concat(passengersInEconomyClass) });
}
function checkAllPassengersBoarded() {
if (boardedPassengers.every((passenger) => allPassengers.includes(passenger)) &&
allPassengers.every((passenger) => boardedPassengers.includes(passenger))) {
console.log("All Passengers Boarded");
}
else {
console.log("Someone's missing");
}
}
function processPassengers(rawPassengerData) {
let passengerData = parsePassengerInput(rawPassengerData);
let newPassenger = new Passenger(passengerData.name, passengerData.bagChecked);
separatePassengerIntoFlightClass(newPassenger, passengerData);
return newPassenger;
}
function main(){
allPassengers = rawListOfPassengers.map(processPassengers);
boardPassengers();
checkAllPassengersBoarded()
}
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment