Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. // Ime i prezime: Vlado Prpić
  2. // Napomene: Vrijeme trajanja testa je 1 sat i 45 minuta. Prolaz je 50%. Dopušteno je korištenje
  3. // interneta i materijala s predavanja, ali nije dopušten nikakav oblik varanja,
  4. // uključujući prepisivanje od drugih.
  5.  
  6.  
  7. // Zadatak 1. (5 bodova)
  8. // Napraviti funkciju za asinkroni dohvat podataka. Funkcija ima 2 parametra "url" i
  9. // "callback". Dohvatiti JSON sa linka https://api.myjson.com/bins/1fqs01 i pozvati callback
  10. // (funkcija za obradu podataka).
  11.  
  12. function loadXMLDoc(url, callback) {
  13. var xmlhttp = new XMLHttpRequest();
  14.  
  15. xmlhttp.onreadystatechange = function() {
  16. if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  17. callback(xmlhttp);
  18. }
  19. };
  20.  
  21. xmlhttp.open("GET", url, true);
  22. xmlhttp.send();
  23. }
  24.  
  25.  
  26. function main() {
  27. loadXMLDoc('https://api.myjson.com/bins/1fqs01', function(data) {
  28. data = JSON.parse(data.response);
  29.  
  30. console.log('\n Zadatak 2');
  31. names(data);
  32.  
  33. console.log('\n Zadatak 3');
  34. notReleased(data);
  35.  
  36. console.log('\n Zadatak 4: Detalji igre id 0');
  37. gameInfo(data[0]);
  38.  
  39. console.log('\n Zadatak 5');
  40. reviewInfo(data);
  41. });
  42. }
  43.  
  44. main();
  45.  
  46.  
  47. // Zadatak 2. (5 bodova)
  48. // Napišite funkciju koja će proći kroz igre i ispisati ime igre i vrijeme izlaska
  49. // ( u obliku: ime igre - vrijeme izlaska)
  50. function names(data) {
  51. for (var i = 0; i < data.length; i++) {
  52. console.log(`${data[i].name} - ${data[i].additional.release_date}`);
  53. }
  54. }
  55.  
  56. // Zadatak 3. (20 bodova)
  57. // a. Napisati funkciju koja će proći kroz sve igre i ispisati one koje još nisu izašle (10 bodova)
  58. // b. Izračunati koliko je još dana preostalo do izlaska igara koje nisu izašle (10 bodova)
  59. function notReleased(data) {
  60. var now = new Date();
  61. var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
  62.  
  63. for (var i = 0; i < data.length; i++) {
  64. var gameDate = new Date(data[i].additional.release_date);
  65.  
  66. if (now <= gameDate) {
  67. var diffDays = Math.round(Math.abs((now.getTime() - gameDate.getTime()) / (oneDay)));
  68. console.log(`Igra: ${data[i].name} - Preostalo do izlaska: ${diffDays} dana`);
  69. }
  70. }
  71. }
  72.  
  73. // Zadatak 4. (10 bodova)
  74. // Napisati funkciju koja će primati po jedan objekat "game" te ispisati ime, broj platformi na kojima igra izlazi,
  75. // te nazive tih platformi. Objekte igara proslijeđivati iz glavnog programa (funkcija za obradu podataka).
  76. function gameInfo(game) {
  77. console.log(`Naziv: ${game.name}, Broj platformi: ${game.platform.length}`);
  78. console.log(`Platforme: ${game.platform.join(',')}`);
  79. }
  80.  
  81.  
  82. // 5. Zadatak (20 bodova)
  83. // a. Napisati funkciju koja je će proći kroz sve igre, za svaku igru ispisati koliko ukupno ima review-ova,
  84. // te u postotku koliko pozitivnih a koliko negativnih (15 bodova)
  85. // b. Ispisati igru koja je po review-ovima najbolje ocjenjena po postotku (5 bodova)
  86. function reviewInfo(data) {
  87. var bestGamePercentage = 0;
  88. var bestGameId = 0;
  89.  
  90. for (var i = 0; i < data.length; i++) {
  91. var review = data[i].reviews;
  92. var total = review.positive + review.negative;
  93.  
  94. var positive = (review.positive / total) * 100;
  95. var negative = (review.negative / total) * 100;
  96.  
  97. if (positive > bestGamePercentage) {
  98. bestGamePercentage = positive;
  99. bestGameId = i;
  100. }
  101.  
  102. console.log(`Naziv: ${data[i].name}, Ukupno reviewa: ${total} (Poz: ${positive}% | Neg: ${negative}%)`);
  103. }
  104.  
  105. console.log(`Najbolje ocjenjena igra: ${data[bestGameId].name}`);
  106. }
  107.  
  108. // 6. Zadatak (20 bodova)
  109. // Napisati funkciju koja će izračunati koliko koja platforma ima igara koje će izaći na njoj.
  110. // Ispisati platforme sortirane od najmanje zastupljenije do najzastupljenije
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement