Skip to content

Commit 5bf2b92

Browse files
Javascript30 Program 4
1 parent 691a4ef commit 5bf2b92

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Array Cardio 💪</title>
6+
</head>
7+
<body>
8+
<p><em>Psst: have a look at the JavaScript Console</em> 💁</p>
9+
<script>
10+
// Get your shorts on - this is an array workout!
11+
// ## Array Cardio Day 1
12+
13+
// Some data we can work with
14+
15+
const inventors = [
16+
{first: 'Albert', last: 'Einstein', year: 1879, passed: 1955},
17+
{first: 'Isaac', last: 'Newton', year: 1643, passed: 1727},
18+
{first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642},
19+
{first: 'Marie', last: 'Curie', year: 1867, passed: 1934},
20+
{first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630},
21+
{first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543},
22+
{first: 'Max', last: 'Planck', year: 1858, passed: 1947},
23+
{first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979},
24+
{first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852},
25+
{first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905},
26+
{first: 'Lise', last: 'Meitner', year: 1878, passed: 1968},
27+
{first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909}
28+
];
29+
30+
const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig',
31+
'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter',
32+
'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano',
33+
'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin',
34+
'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine',
35+
'Black, Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William'];
36+
37+
// Array.prototype.filter()
38+
// 1. Filter the list of inventors for those who were born in the 1500's
39+
// Reduce to: inventors.filter(inventor => inventory.year >= 1500 && inventory.year < 1600);
40+
const inventors1500 = inventors.filter(function (inventor) {
41+
if (inventor.year >= 1500 && inventor.year < 1600) {
42+
return true;
43+
}
44+
});
45+
//Just log them to console in regular format
46+
//console.log(inventors1500);
47+
//Print them in table format
48+
console.table(inventors1500);
49+
50+
51+
// Array.prototype.map()
52+
// 2. Give us an array of the inventors' first and last names
53+
const namesFull = inventors.map(inventor => `${inventor.first} ${inventor.last}`);
54+
console.log(namesFull);
55+
56+
// Array.prototype.sort()
57+
// 3. Sort the inventors by birthdate, oldest to youngest
58+
const sortedBirth = inventors.sort(function (firstPerson, secondPerson) {
59+
if (firstPerson.year > secondPerson.year)
60+
return 1;
61+
else
62+
return -1;
63+
});
64+
console.table(sortedBirth);
65+
//Simplified sort
66+
const sortSimp = inventors.sort((a, b) => a.year > b.year ? 1 : -1);
67+
console.table(sortSimp);
68+
69+
// Array.prototype.reduce()
70+
// 4. How many years did all the inventors live?
71+
const totalYears = inventors.reduce((total, inventor) => {
72+
return total + (inventor.passed - inventor.year);
73+
}, 0);
74+
console.log(totalYears);
75+
76+
// 5. Sort the inventors by years lived
77+
const oldest = inventors.sort((a, b) => {
78+
const lastGuy = a.passed - a.year;
79+
const nextGuy = b.passed - b.year;
80+
if (lastGuy > nextGuy)
81+
return -1;
82+
else
83+
return 1;
84+
});
85+
86+
console.table(oldest);
87+
88+
// 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
89+
// https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
90+
//const category = document.querySelector('.mw-category');
91+
//const links = Array.from(category.querySelectorAll('a'));
92+
93+
//const de = links.map(link => link.textContent).filter(streetName => streetName.includes('de'));
94+
95+
96+
// 7. sort Exercise
97+
// Sort the people alphabetically by last name
98+
const peopleAlpha = people.sort((a, b) => {
99+
const [aLast, aFirst] = a.split(', ');
100+
const [bLast, bFirst] = b.split(', ');
101+
return aLast > bLast ? 1 : -1;
102+
});
103+
console.log(peopleAlpha);
104+
105+
// 8. Reduce Exercise
106+
// Sum up the instances of each of these
107+
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
108+
//Simplified (obj, item) => {stuff!}
109+
const transportation = data.reduce(function (obj, item) {
110+
console.log(item);
111+
if (!obj[item]) {
112+
obj[item] = 0;
113+
}
114+
obj[item]++;
115+
return obj;
116+
}, {});
117+
118+
console.log(transportation);
119+
120+
</script>
121+
</body>
122+
</html>

0 commit comments

Comments
 (0)