-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathindex.html
80 lines (64 loc) · 2.12 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sort Without Articles</title>
</head>
<body>
<style>
body {
font-family: sans-serif;
background: url("https://source.unsplash.com/nDqA4d5NL0k/2000x2000");
background-size: cover;
display: flex;
align-items: center;
min-height: 100vh;
}
#bands {
list-style: inside square;
font-size: 20px;
background: white;
width: 500px;
margin: auto;
padding: 0;
box-shadow: 0 0 0 20px rgba(0, 0, 0, 0.05);
}
#bands li {
border-bottom: 1px solid #efefef;
padding: 20px;
}
#bands li:last-child {
border-bottom: 0;
}
a {
color: #ffc600;
text-decoration: none;
}
</style>
<ul id="bands"></ul>
<script>
(() => {
const bands = ['The Plot in You', 'The Devil Wears Prada', 'Pierce the Veil', 'Norma Jean',
'The Bled', 'Say Anything', 'The Midway State', 'We Came as Romans', 'Counterparts',
'Oh, Sleeper', 'A Skylit Drive', 'Anywhere But Here', 'An Old Dog']
// Declare constant variable and define as new Regular Expression object
const namePrefixes = new RegExp('^(a |the |an )', 'i')
// Declare constant variable and define as an arrow function which
// accepts a 'bandName' property and returns that provided argument
// after replacing values that match the previously defined
// regex pattern with an empty string and removing whitespace on either end
const stripPrefixes = (bandName) => bandName.replace(namePrefixes, '').trim()
// Declare constant variable and define as the result of sorting through the 'bands'
// array depending on the band name excluding prefixes ('A', 'The', 'An')
const sortedBands = bands.sort((a, b) => stripPrefixes(a) > stripPrefixes(b) ? 1 : -1);
// Select the #bands unordered list and update the inner html
// to be the values in the sortedBands array stored within
// list items.
document.querySelector("#bands").innerHTML =
sortedBands
.map(band => `<li>${band}</li>`)
.join('')
})();
</script>
</body>
</html>