1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+
4
+ < head >
5
+ < meta charset ="UTF-8 ">
6
+ < title > Array Cardio 💪</ title >
7
+ </ head >
8
+
9
+ < body >
10
+ < p > < em > No, html & css for today : Open the browser Console</ em > 💁</ p >
11
+ < script >
12
+
13
+
14
+ const inventors = [
15
+ { first : 'Albert' , last : 'Einstein' , year : 1879 , passed : 1955 } ,
16
+ { first : 'Isaac' , last : 'Newton' , year : 1643 , passed : 1727 } ,
17
+ { first : 'Galileo' , last : 'Galilei' , year : 1564 , passed : 1642 } ,
18
+ { first : 'Marie' , last : 'Curie' , year : 1867 , passed : 1934 } ,
19
+ { first : 'Johannes' , last : 'Kepler' , year : 1571 , passed : 1630 } ,
20
+ { first : 'Nicolaus' , last : 'Copernicus' , year : 1473 , passed : 1543 } ,
21
+ { first : 'Max' , last : 'Planck' , year : 1858 , passed : 1947 } ,
22
+ { first : 'Katherine' , last : 'Blodgett' , year : 1898 , passed : 1979 } ,
23
+ { first : 'Ada' , last : 'Lovelace' , year : 1815 , passed : 1852 } ,
24
+ { first : 'Sarah E.' , last : 'Goode' , year : 1855 , passed : 1905 } ,
25
+ { first : 'Lise' , last : 'Meitner' , year : 1878 , passed : 1968 } ,
26
+ { first : 'Hanna' , last : 'Hammarström' , year : 1829 , passed : 1909 }
27
+ ] ;
28
+
29
+ const people = [ 'Beck, Glenn' , 'Becker, Carl' , 'Beckett, Samuel' , 'Beddoes, Mick' , 'Beecher, Henry' , 'Beethoven, Ludwig' , 'Begin, Menachem' , 'Belloc, Hilaire' , 'Bellow, Saul' , 'Benchley, Robert' , 'Benenson, Peter' , 'Ben-Gurion, David' , 'Benjamin, Walter' , 'Benn, Tony' , 'Bennington, Chester' , 'Benson, Leana' , 'Bent, Silas' , 'Bentsen, Lloyd' , 'Berger, Ric' , 'Bergman, Ingmar' , 'Berio, Luciano' , 'Berle, Milton' , 'Berlin, Irving' , 'Berne, Eric' , 'Bernhard, Sandra' , 'Berra, Yogi' , 'Berry, Halle' , 'Berry, Wendell' , 'Bethea, Erin' , 'Bevan, Aneurin' , 'Bevel, Ken' , 'Biden, Joseph' , 'Bierce, Ambrose' , 'Biko, Steve' , 'Billings, Josh' , 'Biondo, Frank' , 'Birrell, Augustine' , 'Black, Elk' , 'Blair, Robert' , 'Blair, Tony' , 'Blake, William' ] ;
30
+
31
+
32
+ // 1. Filter the list of inventors for those who were born in the 1500's
33
+ const inventorIn1500s = inventors . filter ( item => item . year >= 1500 && item . year < 1600 ) ;
34
+ console . table ( inventorIn1500s ) ;
35
+
36
+ // 2. Give us an array of the inventors first and last names
37
+
38
+ //const firstLastName = inventors.map( item => item.first).concat(inventors.map( item => item.last));
39
+ const firstLastName = inventors . map ( x => `${ x . first } - ${ x . last } ` ) ;
40
+
41
+ console . log ( '2 :' , firstLastName ) ;
42
+ // 3. Sort the inventors by birthdate, oldest to youngest
43
+ let sortedByBirthdate = inventors . concat ( ) ;
44
+ sortedByBirthdate . sort ( ( a , b ) => a . year > b . year ) ;
45
+ console . log ( '3:' , sortedByBirthdate , 'unaffected original array :' , inventors ) ;
46
+
47
+ // 4. How many years did all the inventors live all together?
48
+
49
+ // let totalYears = inventors.map(x =>x.passed - x.year).reduce( (acc, curr) => acc+=curr);
50
+ const totalYears = inventors . reduce ( ( total , inventor ) => {
51
+ return total + ( inventor . passed - inventor . year ) ;
52
+ } , 0 ) ;
53
+
54
+ console . log ( '4 :' , totalYears ) ;
55
+ // 5. Sort the inventors by years lived
56
+
57
+ //make a copy
58
+ let sortedByYearsLived = inventors . concat ( ) ;
59
+
60
+ sortedByYearsLived . sort ( ( a , b ) => ( a . passed - a . year ) - ( b . passed - b . year ) ) ;
61
+ console . log ( '5 :' , sortedByYearsLived ) ;
62
+
63
+ // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
64
+ // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
65
+ //array = ['Boulevard Haussmann',`Boulevard de l'Hôpital`,'Boulevard des Italiens','Boulevard Lefebvre','Boulevard des Capucines','Boulevard de la Chapelle','Boulevard de Clichy','Boulevard du Crime','Boulevard de Magenta','Boulevard de Strasbourg','','','','','','','','','','','','Boulevard Voltaire','Boulevard du Temple']
66
+
67
+
68
+ const categories = document . querySelectorAll ( '.mw-category' )
69
+
70
+ //convert the NodeList to array
71
+ //const links = Array.from(categories.querySelectorAll('a'));
72
+ //or better 🧑
73
+ const links = [ ...categories . querySelectorAll ( 'a' ) ] ; //we need only links returns a NodeList
74
+
75
+ const namesWithde = links
76
+ . map ( item => item . contentText )
77
+ . filter ( name => name . includes ( 'de' ) ) ;
78
+ console . table ( namesWithde ) ;
79
+ // 7. sort Exercise
80
+ // Sort the people alphabetically by last name
81
+ const sortedPeople = people . sort ( ( a , b ) => {
82
+ //split the string
83
+ const [ alast , afirst ] = a . split ( ',' ) ;
84
+ const [ blast , bfirst ] = b . split ( ',' ) ;
85
+ return alast - blast ;
86
+ } )
87
+
88
+ console . table ( sortedPeople ) ;
89
+ // 8. Reduce Exercise
90
+ // Sum up the instances of each of these
91
+ const data = [ 'car' , 'car' , 'truck' , 'truck' , 'bike' , 'walk' , 'car' , 'van' , 'bike' , 'walk' , 'car' , 'van' , 'car' , 'truck' ] ;
92
+ //create a objMap
93
+ const reduced = data . reduce ( ( obj , item ) => {
94
+ if ( ! obj [ item ] ) {
95
+ obj [ item ] = 0
96
+ }
97
+ obj [ item ] ++ ;
98
+ return obj ;
99
+ } , { } )
100
+
101
+ console . log ( '8:' , reduced )
102
+
103
+
104
+ </ script >
105
+ </ body >
106
+
107
+ </ html >
0 commit comments