|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="UTF-8"> |
| 5 | + <title>Array Cardio 💪</title> |
| 6 | +</head> |
| 7 | +<body> |
| 8 | + <script> |
| 9 | + // Get your shorts on - this is an array workout! |
| 10 | + // ## Array Cardio Day 1 |
| 11 | + |
| 12 | + // Some data we can work with |
| 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 | + ]; |
| 23 | + |
| 24 | + const flavours = ['Chocolate Chip', 'Kulfi', 'Caramel Praline', 'Chocolate', 'Burnt Caramel', 'Pistachio', 'Rose', 'Sweet Coconut', 'Lemon Cookie', 'Toffeeness', 'Toasted Almond', 'Black Raspberry Crunch', 'Chocolate Brownies', 'Pistachio Almond', 'Strawberry', 'Lavender Honey', 'Lychee', 'Peach', 'Black Walnut', 'Birthday Cake', 'Mexican Chocolate', 'Mocha Almond Fudge', 'Raspberry']; |
| 25 | + |
| 26 | + 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']; |
| 27 | + |
| 28 | + // Array.prototype.filter() |
| 29 | + // 1. Filter the list of inventors for those who were born in the 1500's |
| 30 | + const fifteen = inventors.filter(inventor => inventor.year >= 1500 && inventor.year < 1600); |
| 31 | + console.table(fifteen); |
| 32 | + |
| 33 | + // Array.prototype.map() |
| 34 | + // 2. Give us an array of the inventory first and last names |
| 35 | + const names = inventors.map(inventor => `${inventor.first} ${inventor.last}`); |
| 36 | + console.log(names); |
| 37 | + |
| 38 | + // Array.prototype.sort() |
| 39 | + // 3. Sort the inventors by birthdate, oldest to youngest |
| 40 | + const sorted_inventors = inventors.sort((x, y) => x.year > y.year ? 1 : -1); |
| 41 | + console.table(sorted_inventors); |
| 42 | + |
| 43 | + // Array.prototype.reduce() |
| 44 | + // 4. How many years did all the inventors live? |
| 45 | + const total_yrs = inventors.reduce((sum, i) => sum + (i.passed - i.year), 0); |
| 46 | + console.log(total_yrs); |
| 47 | + |
| 48 | + // 5. Sort the inventors by years lived |
| 49 | + const lifespan = inventors.sort((x, y) => x.passed-x.year > y.passed-y.year ? 1 : -1); |
| 50 | + console.table(lifespan); |
| 51 | + |
| 52 | + // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name |
| 53 | + // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris |
| 54 | + // run on that page ^ |
| 55 | + // const category = document.querySelector('.mw-category'); |
| 56 | + // const links = Array.from(category.querySelectorAll('a')); |
| 57 | + // const de = links |
| 58 | + // .map(link => link.textContent) |
| 59 | + // .filter(name => name.includes('de')); |
| 60 | + // console.log(de); |
| 61 | + const pb = ["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 des Capucines", "Boulevard de la Chapelle", "Boulevard de Clichy", "Boulevard du Crime", "Boulevard Haussmann", "Boulevard de l'Hôpital", "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 de Strasbourg", "Boulevard du Temple", "Boulevard Voltaire", "Boulevard de la Zone"]; |
| 62 | + |
| 63 | + // 7. sort Exercise |
| 64 | + // Sort the people alphabetically by last name |
| 65 | + const sorted_ppl = people.sort(); |
| 66 | + console.log(sorted_ppl); |
| 67 | + |
| 68 | + // 8. Reduce Exercise |
| 69 | + // Sum up the instances of each of these |
| 70 | + const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ]; |
| 71 | + const t = data.reduce(function(obj, item){ |
| 72 | + if(!obj[item]) |
| 73 | + obj[item] = 0 |
| 74 | + obj[item]++; |
| 75 | + return obj; |
| 76 | + }, {}); |
| 77 | + console.log(t); |
| 78 | + |
| 79 | + </script> |
| 80 | +</body> |
| 81 | +</html> |
0 commit comments