-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
53 lines (43 loc) · 1.34 KB
/
script.js
File metadata and controls
53 lines (43 loc) · 1.34 KB
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
let attractions;
fetch('/VisualizationLab2/attractions.json')
.then(response => response.json())
.then(data => {
attractions = data;
attractions.sort(function (a, b) {
return b.Visitors - a.Visitors;
});
let top5attractions = attractions.slice(0,5);
renderBarChart(top5attractions);
});
let category = document.querySelector('#attraction-category');
category.addEventListener('change', function(){
console.log(category.value);
filterData(category.value);
});
function filterData(category) {
if (category == 'all') {
let top5attractions = attractions.slice(0, 5);
renderBarChart(top5attractions);
return;
}
let filteredAttractions = attractions.filter((attraction) => {
return attraction.Category == category;
});
filteredAttractions = filteredAttractions.slice(0,5);
renderBarChart(filteredAttractions);
}
/* **************************************************
*
* TODO: filter attractions by the selected category
* TODO: filter top 5 attractions
*
* CALL THE FOLLOWING FUNCTION TO RENDER THE BAR-CHART:
*
* renderBarChart(data)
*
* - 'data' must be an array of JSON objects
* - the max. length of 'data' is 5
*
* **************************************************/
// TODO: Define an event listener for the dropdown menu
// Call filterData with the selected category