1
+ const inventors = [
2
+ { first : 'Albert' , last : 'Einstein' , year : 1879 , passed : 1955 } ,
3
+ { first : 'Isaac' , last : 'Newton' , year : 1643 , passed : 1727 } ,
4
+ { first : 'Galileo' , last : 'Galilei' , year : 1564 , passed : 1642 } ,
5
+ { first : 'Marie' , last : 'Curie' , year : 1867 , passed : 1934 } ,
6
+ { first : 'Johannes' , last : 'Kepler' , year : 1571 , passed : 1630 } ,
7
+ { first : 'Nicolaus' , last : 'Copernicus' , year : 1473 , passed : 1543 } ,
8
+ { first : 'Max' , last : 'Planck' , year : 1858 , passed : 1947 } ,
9
+ { first : 'Katherine' , last : 'Blodgett' , year : 1898 , passed : 1979 } ,
10
+ { first : 'Ada' , last : 'Lovelace' , year : 1815 , passed : 1852 } ,
11
+ { first : 'Sarah E.' , last : 'Goode' , year : 1855 , passed : 1905 } ,
12
+ { first : 'Lise' , last : 'Meitner' , year : 1878 , passed : 1968 } ,
13
+ { first : 'Hanna' , last : 'Hammarström' , year : 1829 , passed : 1909 } ,
14
+ ] ;
15
+
16
+ const people = [
17
+ 'Bernhard, Sandra' ,
18
+ 'Bethea, Erin' ,
19
+ 'Becker, Carl' ,
20
+ 'Bentsen, Lloyd' ,
21
+ 'Beckett, Samuel' ,
22
+ 'Blake, William' ,
23
+ 'Berger, Ric' ,
24
+ 'Beddoes, Mick' ,
25
+ 'Beethoven, Ludwig' ,
26
+ 'Belloc, Hilaire' ,
27
+ 'Begin, Menachem' ,
28
+ 'Bellow, Saul' ,
29
+ 'Benchley, Robert' ,
30
+ 'Blair, Robert' ,
31
+ 'Benenson, Peter' ,
32
+ 'Benjamin, Walter' ,
33
+ 'Berlin, Irving' ,
34
+ 'Benn, Tony' ,
35
+ 'Benson, Leana' ,
36
+ 'Bent, Silas' ,
37
+ 'Berle, Milton' ,
38
+ 'Berry, Halle' ,
39
+ 'Biko, Steve' ,
40
+ 'Beck, Glenn' ,
41
+ 'Bergman, Ingmar' ,
42
+ 'Black, Elk' ,
43
+ 'Berio, Luciano' ,
44
+ 'Berne, Eric' ,
45
+ 'Berra, Yogi' ,
46
+ 'Berry, Wendell' ,
47
+ 'Bevan, Aneurin' ,
48
+ 'Ben-Gurion, David' ,
49
+ 'Bevel, Ken' ,
50
+ 'Biden, Joseph' ,
51
+ 'Bennington, Chester' ,
52
+ 'Bierce, Ambrose' ,
53
+ 'Billings, Josh' ,
54
+ 'Birrell, Augustine' ,
55
+ 'Blair, Tony' ,
56
+ 'Beecher, Henry' ,
57
+ 'Biondo, Frank' ,
58
+ ] ;
59
+ const BoulevardsInParis = [
60
+ 'Boulevard Auguste-Blanqui' ,
61
+ 'Boulevard Barbès' ,
62
+ 'Boulevard Beaumarchais' ,
63
+ "Boulevard de l'Amiral-Bruix" ,
64
+ 'Boulevard Mortier' ,
65
+ 'Boulevard Poniatowski' ,
66
+ 'Boulevard Soult' ,
67
+ 'Boulevard des Capucines' ,
68
+ 'Boulevard de la Chapelle' ,
69
+ 'Boulevard de Clichy' ,
70
+ 'Boulevard du Crime' ,
71
+ "Boulevard des du Général-d'Armée-Jean-Simon" ,
72
+ 'Boulevard Haussmann' ,
73
+ "Boulevard de l'Hôpital" ,
74
+ 'Boulevard des Italiens' ,
75
+ 'Boulevard Lefebvre' ,
76
+ 'Boulevard de Magenta' ,
77
+ 'Boulevard Marguerite-de-Rochechouart' ,
78
+ 'Boulevard Montmartre' ,
79
+ 'Boulevard du Montparnasse' ,
80
+ 'Boulevard Raspail' ,
81
+ 'Boulevard Richard-Lenoir' ,
82
+ 'Boulevard Saint-Germain' ,
83
+ 'Boulevard de Sébastopol' ,
84
+ 'Boulevard de Strasbourg' ,
85
+ 'Boulevard du Temple' ,
86
+ 'Boulevard Voltaire' ,
87
+ 'Boulevard de la Zone' ,
88
+ ] ;
89
+ // Array.prototype.filter()
90
+ // 1. Filter the list of inventors for those who were born in the 1500's
91
+ const filteredInventors = inventors . filter ( ( inventor ) => {
92
+ return inventor . year >= 1500 && inventor . year < 1600 ;
93
+ } ) ;
94
+ console . log ( inventors ) ;
95
+ console . log ( filteredInventors ) ;
96
+ // Array.prototype.map()
97
+ // 2. Give us an array of the inventors first and last names
98
+ const inventorsName = inventors . map ( ( inventor ) => {
99
+ return `${ inventor . first } ${ inventor . last } ` ;
100
+ } ) ;
101
+ console . log ( inventorsName ) ;
102
+ // Array.prototype.sort()
103
+ // 3. Sort the inventors by birthdate, oldest to youngest
104
+
105
+ // const oldestToYoungest = inventors.sort((a, b) => {
106
+ // if (a.year < b.year) {
107
+ // return -1;
108
+ // } else if (a.year > b.year) {
109
+ // return 1;
110
+ // } else {
111
+ // return 0;
112
+ // }
113
+ // });
114
+
115
+ const oldestToYoungest = inventors . sort ( ( a , b ) => {
116
+ return a . year - b . year ;
117
+ } ) ;
118
+ console . log ( oldestToYoungest ) ;
119
+ // Array.prototype.reduce()
120
+ // 4. How many years did all the inventors live all together?
121
+ // -------------MY Solution-----------------------
122
+ // const yearsArray = inventors.map((inventor) => {
123
+ // return inventor.passed - inventor.year;
124
+ // });
125
+ // console.log(yearsArray);
126
+ // const sumYears = yearsArray.reduce((sum, year) => {
127
+ // console.log(`year is:${year} and sum is: ${sum}`);
128
+ // return year + sum;
129
+ // }, 0);
130
+
131
+ const totalYears = inventors . reduce ( ( total , inventor ) => {
132
+ return total + ( inventor . passed - inventor . year ) ;
133
+ } , 0 ) ;
134
+ console . log ( totalYears ) ;
135
+ // console.log(sumYears);
136
+ // 5. Sort the inventors by years lived
137
+ const mostLivedYears = inventors . sort ( ( a , b ) => {
138
+ return b . passed - b . year - ( a . passed - a . year ) ;
139
+ } ) ;
140
+ console . log ( mostLivedYears ) ;
141
+ // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
142
+ // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
143
+ const de = BoulevardsInParis . filter ( ( item ) => {
144
+ return item . includes ( 'de' , 0 ) ;
145
+ } ) ;
146
+ console . log ( de ) ;
147
+ // 7. sort Exercise
148
+ // Sort the people alphabetically by last name
149
+ const sortByLastName = people . sort ( ( last , next ) => {
150
+ const [ aLast , aFirst ] = last . split ( ', ' ) ;
151
+ const [ bLast , bFirst ] = next . split ( ', ' ) ;
152
+ return aLast > bLast ? 1 : - 1 ;
153
+ } ) ;
154
+ console . log ( sortByLastName ) ;
155
+ // 8. Reduce Exercise
156
+ // Sum up the instances of each of these
157
+ const data = [
158
+ 'car' ,
159
+ 'car' ,
160
+ 'truck' ,
161
+ 'truck' ,
162
+ 'bike' ,
163
+ 'walk' ,
164
+ 'car' ,
165
+ 'van' ,
166
+ 'bike' ,
167
+ 'walk' ,
168
+ 'car' ,
169
+ 'van' ,
170
+ 'car' ,
171
+ 'truck' ,
172
+ ] ;
173
+
174
+ const instances = data . reduce ( ( obj , item ) => {
175
+ if ( ! obj [ item ] ) {
176
+ obj [ item ] = 0 ;
177
+ }
178
+ obj [ item ] ++ ;
179
+ return obj ;
180
+ } , { } ) ;
181
+ console . log ( instances ) ;
0 commit comments