|
33 | 33 |
|
34 | 34 | // Array.prototype.filter()
|
35 | 35 | // 1. Filter the list of inventors for those who were born in the 1500's
|
| 36 | + const fifteens = inventors.filter(inventor => inventor.year >= 1500 && inventor.year < 1600); |
| 37 | + console.log(fifteens); |
36 | 38 |
|
37 | 39 | // Array.prototype.map()
|
38 | 40 | // 2. Give us an array of the inventors' first and last names
|
| 41 | + const names = inventors.map(inventor => `${inventor.first} ${inventor.last}`); |
| 42 | + console.log(names); |
39 | 43 |
|
40 | 44 | // Array.prototype.sort()
|
41 | 45 | // 3. Sort the inventors by birthdate, oldest to youngest
|
| 46 | + const sorted = inventors.sort((a, b) => a.year - b.year); |
| 47 | + console.table(sorted); |
42 | 48 |
|
43 | 49 | // Array.prototype.reduce()
|
44 | 50 | // 4. How many years did all the inventors live?
|
| 51 | + const total = inventors.reduce((acc, current) => acc + (current.passed - current.year), 0); |
| 52 | + console.log(total); |
45 | 53 |
|
46 | 54 | // 5. Sort the inventors by years lived
|
| 55 | + const sortedTotal = inventors.sort((a, b) => (a.passed - a.year) - (b.passed - b.year)); |
| 56 | + console.table(sortedTotal); |
47 | 57 |
|
48 | 58 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
|
49 | 59 | // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
|
50 |
| - |
| 60 | + // const paris = ["Boulevards of Paris", "City walls of Paris", "Thiers wall", "Wall of Charles V", "Wall of Philip II Augustus", "City gates of Paris", "Haussmann's renovation of Paris", "Boulevards of the Marshals", "Boulevard Auguste-Blanqui", "Boulevard Barbès", "Boulevard Beaumarchais", "Boulevard de l'Amiral-Bruix", "Boulevard de Strasbourg", "Boulevard des Capucines", "Boulevard de la Chapelle", "Boulevard de Clichy", "Boulevard du Crime", "Boulevard Haussmann", "Boulevard de l'Hopital", "Boulevard des Italiens", "Boulevard de la Madeleine", "Boulevard de Magenta", "Boulevard Montmartre", "Boulevard du Montparnasse", "Boulevard Raspail", "Boulevard Richard-Lenoir", "Boulevard de Rochechouart", "Boulevard Saint-Germain", "Boulevard Saint-Michel", "Boulevard de Sébastopol", "Boulevard du Temple", "Boulevard Voltaire", "Boulevard de la Zone"]; |
| 61 | + // console.log(paris.filter(q => q.includes("de"))); |
51 | 62 |
|
52 | 63 | // 7. sort Exercise
|
53 | 64 | // Sort the people alphabetically by last name
|
| 65 | + const pplSorted = people |
| 66 | + .map(person => person.split(', ')) |
| 67 | + .sort(([aLast, _a], [bLast, _b]) => aLast > bLast ? 1 : -1) |
| 68 | + .map(([last, first]) => `${first} ${last}`); |
| 69 | + |
| 70 | + console.log(pplSorted); |
54 | 71 |
|
55 | 72 | // 8. Reduce Exercise
|
56 | 73 | // Sum up the instances of each of these
|
57 | 74 | const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ];
|
58 |
| - |
| 75 | + const counts = data.reduce((output, current) => { |
| 76 | + output[current] = (output[current] || 0) + 1; |
| 77 | + return output; |
| 78 | + }, {}); |
| 79 | + console.log(counts); |
59 | 80 | </script>
|
60 | 81 | </body>
|
61 | 82 | </html>
|
0 commit comments