// A local community center is holding a fund raising 5k fun run and has invited 50 small businesses to make a small donation on their behalf for some much needed updates to their facilities. Each business has assigned a representative to attend the event along with a small donation. // Scroll to the bottom of the list to use some advanced array methods to help the event director gather some information from the businesses. const runners = [{ id: 1, first_name: "Charmain", last_name: "Seiler", email: "[email protected]", shirt_size: "2XL", company_name: "Divanoodle", donation: 75 }, { id: 2, first_name: "Whitaker", last_name: "Ierland", email: "[email protected]", shirt_size: "2XL", company_name: "Wordtune", donation: 148 }, { id: 3, first_name: "Julieta", last_name: "McCloid", email: "[email protected]", shirt_size: "S", company_name: "Riffpedia", donation: 171 }, { id: 4, first_name: "Martynne", last_name: "Paye", email: "[email protected]", shirt_size: "XL", company_name: "Wordware", donation: 288 }, { id: 5, first_name: "Gussy", last_name: "Raraty", email: "[email protected]", shirt_size: "L", company_name: "Oozz", donation: 291 }, { id: 6, first_name: "Yule", last_name: "Tommasetti", email: "[email protected]", shirt_size: "S", company_name: "Yodo", donation: 27 }, { id: 7, first_name: "Kathie", last_name: "Majury", email: "[email protected]", shirt_size: "3XL", company_name: "Zoomcast", donation: 261 }, { id: 8, first_name: "Tanner", last_name: "Branton", email: "[email protected]", shirt_size: "2XL", company_name: "Realmix", donation: 28 }, { id: 9, first_name: "Sarina", last_name: "Lasham", email: "[email protected]", shirt_size: "XL", company_name: "Gigashots", donation: 110 }, { id: 10, first_name: "Bertie", last_name: "Lonergan", email: "[email protected]", shirt_size: "3XL", company_name: "Skinte", donation: 62 }, { id: 11, first_name: "Trevor", last_name: "Studd", email: "[email protected]", shirt_size: "S", company_name: "Cogidoo", donation: 76 }, { id: 12, first_name: "Malachi", last_name: "Okeshott", email: "[email protected]", shirt_size: "M", company_name: "DabZ", donation: 91 }, { id: 13, first_name: "Berget", last_name: "Logsdail", email: "[email protected]", shirt_size: "M", company_name: "Mymm", donation: 9 }, { id: 14, first_name: "Loise", last_name: "Rivlin", email: "[email protected]", shirt_size: "2XL", company_name: "Linktype", donation: 204 }, { id: 15, first_name: "Christan", last_name: "Kendall", email: "[email protected]", shirt_size: "XS", company_name: "Skinix", donation: 252 }, { id: 16, first_name: "Kayla", last_name: "Whitwam", email: "[email protected]", shirt_size: "2XL", company_name: "Oyope", donation: 147 }, { id: 17, first_name: "Heddie", last_name: "Heningam", email: "[email protected]", shirt_size: "L", company_name: "Skinix", donation: 172 }, { id: 18, first_name: "Mace", last_name: "Ballinger", email: "[email protected]", shirt_size: "S", company_name: "Nlounge", donation: 266 }, { id: 19, first_name: "Nola", last_name: "Abberley", email: "[email protected]", shirt_size: "XL", company_name: "Photospace", donation: 148 }, { id: 20, first_name: "Nadine", last_name: "Tresler", email: "[email protected]", shirt_size: "3XL", company_name: "Wikido", donation: 292 }, { id: 21, first_name: "Ulrikaumeko", last_name: "Vuittet", email: "[email protected]", shirt_size: "S", company_name: "Skinte", donation: 102 }, { id: 22, first_name: "Saunder", last_name: "Spennock", email: "[email protected]", shirt_size: "3XL", company_name: "Kwimbee", donation: 213 }, { id: 23, first_name: "Carmel", last_name: "Woffinden", email: "[email protected]", shirt_size: "S", company_name: "Rooxo", donation: 137 }, { id: 24, first_name: "Marielle", last_name: "Kimmel", email: "[email protected]", shirt_size: "M", company_name: "Livetube", donation: 96 }, { id: 25, first_name: "Brucie", last_name: "Burris", email: "[email protected]", shirt_size: "2XL", company_name: "Wordtune", donation: 128 }, { id: 26, first_name: "Juan", last_name: "Berzon", email: "[email protected]", shirt_size: "3XL", company_name: "Einti", donation: 234 }, { id: 27, first_name: "Sacha", last_name: "Olsen", email: "[email protected]", shirt_size: "2XL", company_name: "Viva", donation: 190 }, { id: 28, first_name: "Jamey", last_name: "O'Nolan", email: "[email protected]", shirt_size: "XL", company_name: "Skinix", donation: 31 }, { id: 29, first_name: "Morrie", last_name: "Rainard", email: "[email protected]", shirt_size: "XS", company_name: "Podcat", donation: 52 }, { id: 30, first_name: "Fidel", last_name: "Roskelly", email: "[email protected]", shirt_size: "XS", company_name: "Avavee", donation: 5 }, { id: 31, first_name: "Toni", last_name: "MacSweeney", email: "[email protected]", shirt_size: "M", company_name: "Jaloo", donation: 82 }, { id: 32, first_name: "Jessey", last_name: "Walhedd", email: "[email protected]", shirt_size: "L", company_name: "Trilia", donation: 5 }, { id: 33, first_name: "Karola", last_name: "Piper", email: "[email protected]", shirt_size: "3XL", company_name: "Yombu", donation: 110 }, { id: 34, first_name: "Marley", last_name: "Mitchenson", email: "[email protected]", shirt_size: "M", company_name: "Zoonoodle", donation: 97 }, { id: 35, first_name: "Marrilee", last_name: "Thrasher", email: "[email protected]", shirt_size: "XL", company_name: "Bluejam", donation: 17 }, { id: 36, first_name: "Tye", last_name: "Manie", email: "[email protected]", shirt_size: "L", company_name: "Kanoodle", donation: 30 }, { id: 37, first_name: "Charleen", last_name: "Sheering", email: "[email protected]", shirt_size: "3XL", company_name: "Jatri", donation: 262 }, { id: 38, first_name: "Valma", last_name: "Eynaud", email: "[email protected]", shirt_size: "XS", company_name: "Jaxbean", donation: 212 }, { id: 39, first_name: "Dollie", last_name: "McDarmid", email: "[email protected]", shirt_size: "S", company_name: "Kayveo", donation: 74 }, { id: 40, first_name: "Minna", last_name: "Hymas", email: "[email protected]", shirt_size: "XS", company_name: "Vimbo", donation: 101 }, { id: 41, first_name: "Jsandye", last_name: "Frend", email: "[email protected]", shirt_size: "XS", company_name: "Latz", donation: 156 }, { id: 42, first_name: "Yevette", last_name: "Hacket", email: "[email protected]", shirt_size: "XL", company_name: "Lazzy", donation: 291 }, { id: 43, first_name: "Hank", last_name: "Zebedee", email: "[email protected]", shirt_size: "L", company_name: "Gigashots", donation: 241 }, { id: 44, first_name: "Jodie", last_name: "Stawell", email: "[email protected]", shirt_size: "S", company_name: "Jaxspan", donation: 262 }, { id: 45, first_name: "Falito", last_name: "Karsh", email: "[email protected]", shirt_size: "S", company_name: "Mycat", donation: 239 }, { id: 46, first_name: "Reginauld", last_name: "Purselowe", email: "[email protected]", shirt_size: "L", company_name: "Jabbersphere", donation: 11 }, { id: 47, first_name: "Vida", last_name: "Tydd", email: "[email protected]", shirt_size: "S", company_name: "Quaxo", donation: 55 }, { id: 48, first_name: "Anderea", last_name: "MacGiolla Pheadair", email: "[email protected]", shirt_size: "2XL", company_name: "Kwimbee", donation: 214 }, { id: 49, first_name: "Bel", last_name: "Alway", email: "[email protected]", shirt_size: "S", company_name: "Voolia", donation: 107 }, { id: 50, first_name: "Shell", last_name: "Baine", email: "[email protected]", shirt_size: "M", company_name: "Gabtype", donation: 171 }, ]; // ==== Challenge 1: Use .forEach() ==== // The event director needs both the first and last names of each runner for their running bibs. Combine both the first and last names and populate a new array called `fullNames`. This array will contain just strings. let fullNames = []; runners.forEach(function (items) { return fullNames.push(`${items.first_name}` + " " + `${items.last_name}`); }); console.log(fullNames); // ==== Challenge 2: Use .map() ==== // The event director needs to have all the runners' first names in uppercase because the director BECAME DRUNK WITH POWER. Populate an array called `firstNamesAllCaps`. This array will contain just strings. let firstNamesAllCaps = []; runners.map(function (items) { return firstNamesAllCaps.push(`${items.first_name}`.toUpperCase()); }); console.log(firstNamesAllCaps); // ==== Challenge 3: Use .filter() ==== // The large shirts won't be available for the event due to an ordering issue. We need a filtered version of the runners array, containing only those runners with large sized shirts so they can choose a different size. This will be an array of objects. let runnersLargeSizeShirt = [ runners.filter(function (items) { return items.shirt_size == "L" }) ]; console.log(runnersLargeSizeShirt); // ==== Challenge 4: Use .reduce() ==== // The donations need to be tallied up and reported for tax purposes. Add up all the donations and save the total into a ticketPriceTotal variable. let ticketPriceTotal = runners.reduce(function (accumulator, items) { return accumulator + items.donation; }, 0); console.log(ticketPriceTotal); // ==== Challenge 5: Be Creative ==== // Now that you have used .forEach(), .map(), .filter(), and .reduce(). I want you to think of potential problems you could solve given the data set and the 5k fun run theme. Try to create and then solve 3 unique problems using one or many of the array methods listed above. // Problem 1 // In order to contact each Runners place of employment we want a list of every Company and their email address. let companyNames = []; runners.forEach(function (items) { return companyNames.push(`${items.company_name}` + " | " + `${items.email}`); }); console.log(companyNames.sort()); // Problem 2 // In order to print names for the back of runners shirts, we want all last names in uppercase in a new array. let lastNamesAllCaps = []; runners.map(function (items) { return lastNamesAllCaps.push(`${items.last_name}`.toUpperCase()); }); console.log(lastNamesAllCaps.sort()); // Problem 3 //In order to know who to attempt to get more money from, create a list of people who clearly have more money..A.K.A, anyone who can donate more than $250 to a race. let donationSize = [ runners.filter(function (items) { return items.donation >= "250"; }) ]; console.log(donationSize);