jda_m06/uf02/examen/script.js
2022-02-16 16:13:08 +01:00

99 lines
4.2 KiB
JavaScript
Executable file

var characters = [
{name: "Harry Potter", actor: "Daniel Radcliffe", house: "Gryffindor", yearOfBirth: "1980", eyeColour: "green", hairColour: "black"},
{name: "Hermione Granger", actor: "Emma Watson", house: "Gryffindor", yearOfBirth: "1979", eyeColour: "brown", hairColour: "brown"},
{name: "Ron Weasley", actor: "Rupert Grint", house: "Gryffindor", yearOfBirth: "1980", eyeColour: "blue", hairColour: "red"},
{name: "Draco Malfoy", actor: "Tom Felton", house: "Slytherin", yearOfBirth: "1980", eyeColour: "grey", hairColour: "blonde"},
{name: "Minerva McGonagall", actor: "Dame Maggie Smith", house: "Gryffindor", yearOfBirth: "1925", eyeColour: "", hairColour: "black"},
{name: "Cedric Diggory", actor: "Robert Pattinson", house: "Hufflepuff", yearOfBirth: "1977", eyeColour: "grey", hairColour: "brown"},
{name: "Cho Chang", actor: "Katie Leung", house: "Ravenclaw", yearOfBirth: "", eyeColour: "brown", hairColour: "black"},
{name: "Severus Snape", actor: "Alan Rickman", house: "Slytherin", yearOfBirth: "1960", eyeColour: "black", hairColour: "black"},
{name: "Rubeus Hagrid", actor: "Robbie Coltrane", house: "Gryffindor", yearOfBirth: "1928", eyeColour: "black", hairColour: "black"},
{name: "Neville Longbottom", actor: "Matthew Lewis", house: "Gryffindor", yearOfBirth: "1980", eyeColour: "", hairColour: "blonde"},
{name: "Luna Lovegood", actor: "Evanna Lynch", house: "Ravenclaw", yearOfBirth: "1981", eyeColour: "grey", hairColour: "blonde"},
{name: "Ginny Weasley", actor: "Bonnie Wright", house: "Gryffindor", yearOfBirth: "1981", eyeColour: "brown", hairColour: "red"},
{name: "Sirius Black", actor: "Gary Oldman", house: "Gryffindor", yearOfBirth: "1959", eyeColour: "grey", hairColour: "black"},
{name: "Remus Lupin", actor: "David Thewlis", house: "Gryffindor", yearOfBirth: "1960", eyeColour: "green", hairColour: "brown"},
{name: "Arthur Weasley", actor: "Mark Williams", house: "Gryffindor", yearOfBirth: "1950", eyeColour: "blue", hairColour: "red"},
{name: "Bellatrix Lestrange", actor: "Helena Bonham Carter", house: "Slytherin", yearOfBirth: "1951", eyeColour: "brown", hairColour: "black"},
{name: "Lord Voldemort", actor: "Ralph Fiennes", house: "Slytherin", yearOfBirth: "1926", eyeColour: "red", hairColour: "bald"}
];
function printList(task) {
// document.getElementById("contentItems").innerHTML = "";
switch (task) {
case 'a':
returnVar = orderList('a', characters);
break;
case 'd':
returnVar = orderList('d', characters);
break;
case 'fh':
returnVar = filterHouse(document.getElementById("search-bar-1").value, characters);
break;
case 'fy':
returnVar = filterYear(document.getElementById("search-bar-2").value, characters);
break;
case 'n':
returnVar = characters;
break;
case 'r':
location.reload();
return;
default:
break;
}
showTable(returnVar);
}
function filterHouse(inputVar, finalData) {
var obj = new Array();
for(var i = 0; i < finalData.length; i++){
if (finalData[i].house.indexOf(inputVar) != -1) {
obj.push(finalData[i]);
}
}
return obj;
}
function filterYear(inputVar, finalData) {
var obj = new Array();
for(var i = 0; i < finalData.length; i++){
if (finalData[i].yearOfBirth < inputVar) {
obj.push(finalData[i]);
}
}
return obj;
}
function orderList(order, finalData) {
var obj = finalData.sort(function compare( a, b ) {
if ( a.house < b.house ){
return -1;
}
if ( a.house > b.house ){
return 1;
}
return 0;
});
if (order=='d') return obj.reverse();
if (document.getElementById("search-bar-1").value == null || username == "")
return obj;
}
function showTable(finalData) {
document.getElementById("contentTable").innerHTML = null;
for (let i=0; i<finalData.length; i++) {
document.getElementById("contentTable").innerHTML +=
`<tr>
<td>` + finalData[i]["name"] + `</td>
<td>` + finalData[i]["actor"] + `</td>
<td>` + finalData[i]["house"] + `</td>
<td>` + finalData[i]["yearOfBirth"] + `</td>
<td>` + finalData[i]["eyeColour"] + `</td>
<td>` + finalData[i]["hairColour"] + `</td>
</tr>`
}
}
showTable(characters);