|
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 | + // filter will return 2 out of 10 |
| 37 | + var fifteen = inventors.filter(function(investor) { |
| 38 | + if (investor.year >= 1500 && investor.year < 1599) { |
| 39 | + return true;// keep it |
| 40 | + } |
| 41 | + }); |
| 42 | + |
| 43 | + // using the reduce to implement filter |
| 44 | + // var fifteen = inventors.reduce(function(acc, investor) { |
| 45 | + // if (investor.year >= 1500 && investor.year < 1599) { |
| 46 | + // acc.push(inventor); |
| 47 | + // } |
| 48 | + |
| 49 | + // return acc; |
| 50 | + // }, []); |
| 51 | + |
| 52 | + |
| 53 | + console.log(fifteen); |
36 | 54 |
|
37 | 55 | // Array.prototype.map() |
38 | 56 | // 2. Give us an array of the inventors' first and last names |
| 57 | + // map return the amount of array you give it |
| 58 | + var fullNames = inventors.map(function(investor) { |
| 59 | + return investor.first + ' ' + investor.last; |
| 60 | + }); |
| 61 | + |
| 62 | + console.log(fullNames); |
39 | 63 |
|
40 | 64 | // Array.prototype.sort() |
41 | 65 | // 3. Sort the inventors by birthdate, oldest to youngest |
| 66 | + // two items, return 1, or 1- |
| 67 | + |
| 68 | + var ordered = inventors.sort(function(firstPerson, secondPerson) { |
| 69 | + if (firstPerson.year > secondPerson.year) { |
| 70 | + return 1; |
| 71 | + } else { |
| 72 | + return -1; |
| 73 | + } |
| 74 | + }); |
| 75 | + |
| 76 | + // Simple way to implement |
| 77 | + //var ordered = inventors.sort((a, b) => a.year > b.year ? 1 : -1); |
| 78 | + |
| 79 | + console.table(ordered); |
42 | 80 |
|
43 | 81 | // Array.prototype.reduce() |
44 | 82 | // 4. How many years did all the inventors live? |
45 | 83 |
|
| 84 | + var totalYears = inventors.reduce(function(total, investor) { |
| 85 | + return total + (investor.passed - investor.year); |
| 86 | + }, 0); |
| 87 | + console.log(totalYears); |
| 88 | + |
46 | 89 | // 5. Sort the inventors by years lived |
47 | 90 |
|
| 91 | + var oldest = inventors.sort(function(a, b) { |
| 92 | + var lastGuy = a.passed - a.year; |
| 93 | + var nextGuy = b.passed - b.year; |
| 94 | + |
| 95 | + if (lastGuy > nextGuy) { |
| 96 | + return -1; |
| 97 | + } else { |
| 98 | + return 1; |
| 99 | + } |
| 100 | + }); |
| 101 | + |
| 102 | + console.table(oldest); |
| 103 | + |
48 | 104 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name |
49 | 105 | // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris |
| 106 | + // var category = document.querySelector('.mw-category'); |
| 107 | + // var links = Array.from(category.querySelectorAll('a')); |
| 108 | + |
| 109 | + // // |
| 110 | + // var de = links.map(function(link) { |
| 111 | + // return link.textContent; |
| 112 | + // }).filter(function(streetName) { |
| 113 | + // return streetName.includes('de'); |
| 114 | + // }); |
50 | 115 |
|
51 | 116 |
|
52 | 117 | // 7. sort Exercise |
53 | 118 | // Sort the people alphabetically by last name |
| 119 | + var alpha = people.sort(function(lastOne, nextOne) { |
| 120 | + var [aFirst, aLast] = lastOne.split(', '); |
| 121 | + var [bFirst, bLast] = nextOne.split(', '); |
| 122 | + return aLast > bLast ? 1 : -1 |
| 123 | + }); |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + console.log(alpha); |
54 | 128 |
|
55 | 129 | // 8. Reduce Exercise |
56 | 130 | // Sum up the instances of each of these |
57 | 131 | const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ]; |
| 132 | + var transportation = data.reduce(function(obj, item) { |
| 133 | + if (!obj[item]) { |
| 134 | + obj[item] = 0; |
| 135 | + } |
| 136 | + |
| 137 | + obj[item]++; |
| 138 | + return obj; |
| 139 | + }, {}); |
| 140 | + |
| 141 | + console.log(transportation); |
58 | 142 |
|
59 | 143 | </script> |
60 | 144 | </body> |
|
0 commit comments