forked from bloominstituteoftechnology/JavaScript-II
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharray-methods.js
More file actions
104 lines (95 loc) · 10 KB
/
array-methods.js
File metadata and controls
104 lines (95 loc) · 10 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// A local community center is holding a fund rasising 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 into a new array called fullName.
let fullName = [];
runners.forEach(function (runner) {
fullName.push(`${runner.first_name} ${runner.last_name}`);
});
//console.log(fullName);
// ==== Challenge 2: Use .map() ====
// The event director needs to have all the runner's first names converted to uppercase because the director BECAME DRUNK WITH POWER. Convert each first name into all caps and log the result
let allCaps = runners.map(function(runner){
return runner.first_name.toUpperCase();
})
//console.log(allCaps);
// ==== Challenge 3: Use .filter() ====
// The large shirts won't be available for the event due to an ordering issue. Get a list of runners with large sized shirts so they can choose a different size. Return an array named largeShirts that contains information about the runners that have a shirt size of L and log the result
let largeShirts = runners.filter(function (runner) {
return runner.shirt_size==="L";
});
//console.log(largeShirts);
// ==== Challenge 4: Use .reduce() ====
// The donations need to be tallied up and reported for tax purposes. Add up all the donations into a ticketPriceTotal array and log the result
let ticketPriceTotal = runners.reduce(function(acc, runner){
return acc+runner.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 I want a email list that has the first name, last name, email and company name
const emailList = runners.map(function(runner){
return {
first_name: runner.first_name,
last_name: runner.last_name,
company_name: runner.company_name,
email: runner.email
};
})
//console.log(emailList)
// Problem 2 A list of donation over 200
const highDonor = runners.filter(runner => runner.donation>=200);
//console.log(highDonor);
// Problem 3 all runners that first names start with C. This organizer 's name starts with C so he likes it when someone's name starts with C. He wants to give a headstart to these people so get him a list.
const CRunners = runners.filter(runner=>runner.first_name[0]==="C").map(runner => `${runner.first_name} ${runner.last_name}`);
//console.log(CRunners);