generated from LovesPictures/JSClock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
144 lines (117 loc) · 5.59 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Array Cardio 💪🏾</title>
</head>
<body>
<p><em>Psst: have a look at the JavaScript Console</em> 👉🏾💁👉🏾</p>
<script>
// Get your shorts on - this is an array workout!
// ## Array Cardio Day 1
// Some data we can work with
const inventors = [
{ first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 },
{ first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 },
{ first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 },
{ first: 'Marie', last: 'Curie', year: 1867, passed: 1934 },
{ first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 },
{ first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 },
{ first: 'Max', last: 'Planck', year: 1858, passed: 1947 },
{ first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 },
{ first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 },
{ first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 },
{ first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 },
{ first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
];
const people = [
'Bernhard, Sandra', 'Bethea, Erin', 'Becker, Carl', 'Bentsen, Lloyd', 'Beckett, Samuel', 'Blake, William', 'Berger, Ric', 'Beddoes, Mick', 'Beethoven, Ludwig',
'Belloc, Hilaire', 'Begin, Menachem', 'Bellow, Saul', 'Benchley, Robert', 'Blair, Robert', 'Benenson, Peter', 'Benjamin, Walter', 'Berlin, Irving',
'Benn, Tony', 'Benson, Leana', 'Bent, Silas', 'Berle, Milton', 'Berry, Halle', 'Biko, Steve', 'Beck, Glenn', 'Bergman, Ingmar', 'Black, Elk', 'Berio, Luciano',
'Berne, Eric', 'Berra, Yogi', 'Berry, Wendell', 'Bevan, Aneurin', 'Ben-Gurion, David', 'Bevel, Ken', 'Biden, Joseph', 'Bennington, Chester', 'Bierce, Ambrose',
'Billings, Josh', 'Birrell, Augustine', 'Blair, Tony', 'Beecher, Henry', 'Biondo, Frank'
];
// functional programming
// Array.prototype.filter()
// 1. Filter the list of inventors for those who were born in the 1500's
// filter - takes in any number of items loops over then returns any number of items
// expressed as an arrow function, Returns a Boolean of TRUE
const fifteen = inventors.filter(inventors => (inventors.year >= 1500 && inventors.year < 1600))
console.table(fifteen);
// --------------------------
// Array.prototype.map()
// May - take in an array, does something with that array, then returns an array of the same length
// 2. Give us an array of the inventors first and last names
const fullNames = inventors.map(inventor => `${inventor.first} ${inventor.last}`);
console.table(fullNames);
// --------------------------
// Array.prototype.sort()
// 3. Sort the inventors by birthdate, oldest to youngest
// Sort - compares and organises two items.
//long version
// const ordered = inventors.sort(function(a,b){
// if(a.year > b.year) {
// return 1;
// } else {
// return -1;
// }
// });
// console.table(ordered);
//ternary version of the above
const ordered = inventors.sort((a,b) => a.year > b.year ? 1 : -1);
console.table(ordered);
// --------------------------
// Array.prototype.reduce()
// 4. How many years did all the inventors live all together?
const totalYears = inventors.reduce((total,inventor) => {
return total + (inventor.passed - inventor.year);
}, 0); // this is the starting point
console.log(totalYears);
// --------------------------
// 5. Sort the inventors by years lived
const oldest = inventors.sort(function(a,b){
const lastGuy = a.passed - a.year;
const nextGuy = b.passed - b.year;
return lastGuy > nextGuy ? -1 : 1;
});
console.table(oldest);
// --------------------------
// 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
// https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
// Get dom elements, by inspecting the DEV tools
// you can call query selector against any existing DOM element
// const category = document.querySelector(',mw-category'); //from document
// const links = Array/from (category.querySelectorAll('a')); // look at the links
// const de = links
// .map (links => link.textContent) //map
// .filter (streetName => streetName.includes('de')); //filter
// console.table(streetName);
// --------------------------
// 7. sort the people Exercise
// Sort the people alphabetically by last name then first name
const alpha = people.sort((lastOne, nextOne) => { //take the people and sort
const [aLast, aFirst] = lastOne.split(', '); //commer split
const [bLast, bFirst] = nextOne.split(', ');
// return bLast > bFirst ? 1 : -1; // last name
return aLast > bLast ? 1 : -1; //first name
});
console.table(alpha);
// --------------------------
// 8. Reduce Exercise
// Sum up the instances of each of these
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ];
const transportation = data.reduce(function (obj, item) {
// test
// console.log(itme);
// return obj;
if (!obj[item]) { //start by checking, if there is not object/item, then object is = 0
obj[item] = 0;
}
obj[item]++;
return obj;
}, {});
console.table(transportation);
// --------------------------
</script>
</body>
</html>