Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1. Napišite funkciju za asinkroni dohvat podataka sa servera.
- // Dohvatite JSON sa linka: https://api.myjson.com/bins/17uckw - 5 bodova
- // 2. Napravite funkciju koja prima podatke koje ste dohvatili sa servera.
- // Funkcija treba sortirati dobijene podatke ("matches") po id-u, od najveæeg id-a prema najmanjem i ispisati tekst, nakon sortiranja, (za svaki podatak) u obliku "id - par" ("par" se nalazi u propertiju duels) - 10 bodova
- // 3. Napravite novu funkciju koja prima podatke koje ste dohvatili sa servera.
- // Funkcija treba izbaciti najduzi i najkraci mec iz niza matches gledajuci "matchTime" property te ispisati niz(format matchTime-a je h:mm). - 15 bodova
- // 4. Napraviti funkciju koja æe sumirati broj gemova u svakom meèu, te ispisati koji meè ima najviše gemova i broj gemova na tom meèu - 20 bodova
- // 5. Napraviti funkciju koja æe iz matchStartsAt propertija izvuæi datum poèetka meèa te ispisati za svaki meè na koji je dan u tjednu poèeo. Zatim ispisati dane koji se ponavljaju više od jednog puta i napisati koliko se puta ponavljaju ti dani("dan" - "broj ponavljanja"). - 25 bodova
- // Zadatak 6.: Koristeæi se HTML-om i CSS-om, napravite div element sirine 200px i visine 200px sive pozadine.
- // Na klik diva cete zakacit funkciju za dohvatanje podataka sa servera kojoj cete proslijediti novu funkciju koja ce na svaki klik uzeti neki random mec iz niza matches i promijeniti pozadinu div-u po "courtType" property-u iz tog meca ("#40A14C" za grass, "#005282" za "hard court" i "#E2983D" za clay) i upisati ime tog meca unutar diva. (25 bodova)
- function loadData(url, cb) {
- var xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- cb(JSON.parse(this.responseText));
- }
- };
- xmlhttp.open("GET", url, true);
- xmlhttp.send();
- }
- function parseData(data){
- //sortMatches(data);
- //matchLength(data);
- //gemsNum(data);
- //matchStart(data);
- }
- loadData("https://api.myjson.com/bins/17uckw", parseData);
- function sortMatches(data){
- data.matches.sort((a,b) => b.id - a.id);
- data.matches.forEach((item) => {
- console.log(item.id + ' - ' + data.duels[item.id]);
- });
- }
- function matchLength(data){
- data.matches.forEach(function(key){
- key.minutes = (parseInt(key.matchTime.split(':')[0])*60) + parseInt(key.matchTime.split(':')[1]);
- });
- var min = Infinity, max = -Infinity, minEl, maxEl;
- data.matches.forEach(function(key){
- var value = key.minutes;
- if(min > value){
- min = value;
- minEl = key;
- }
- if(max < value){
- max = value;
- maxEl = key;
- }
- });
- console.log(minEl);
- console.log(maxEl);
- }
- function gemsNum(data){
- var games = {}, sumOfGames = 0;
- data.matches.forEach(function(key){
- sumOfGames = 0;
- key.result.sets.forEach(function(game){
- var x = parseInt(game.split(':')[0]) + parseInt(game.split(':')[1]);
- sumOfGames += x;
- });
- if(!games[key.id]) games[key.id] = sumOfGames;
- });
- var max = -Infinity, maxEl = [], value;
- Object.keys(games).forEach(key => {
- value = games[key];
- if(value > max){
- maxEl = [];
- max = value;
- maxEl.push(key + ': ' + data.duels[key] + ' sa ' + max + ' gemova\n');
- } else if(value === max){
- maxEl.push(key + ': ' + data.duels[key] + ' sa ' + max + ' gemova');
- }
- });
- console.log('Najveæi broj gemova: \n' + maxEl);
- }
- function matchStart(data){
- var dayCount = {};
- data.matches.forEach(key => {
- var date = new Date(key.matchStartsAt).toLocaleString("hr-HR", {weekday: 'long'});
- console.log('Meè ' + data.duels[key.id] + ' je održan ' + date);
- if(!dayCount[date]) dayCount[date] = 0;
- dayCount[date]++;
- });
- console.log(dayCount);
- Object.keys(dayCount).forEach(key => {
- if(dayCount[key] > 1){
- console.log(key + ' se ponavlja ' + dayCount[key] + ' puta.');
- }
- });
- }
- function load(data) {
- var randIndex = Math.floor(Math.random()*data.matches.length),
- x = data.matches[randIndex],
- grayDiv = document.querySelector('.box');
- if(x.courtType === 'grass'){
- grayDiv.style.backgroundColor = '#40A14C';
- grayDiv.innerHTML = data.duels[x.id];
- }
- else if(x.courtType === 'hard court'){
- grayDiv.style.backgroundColor = '#005282';
- grayDiv.innerHTML = data.duels[x.id];
- }
- else if(x.courtType === 'clay'){
- grayDiv.style.backgroundColor = '#E2983D';
- grayDiv.innerHTML = data.duels[x.id];
- }
- }
- /////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////
- // Napomene: Vrijeme trajanja testa je 2 sata. Prolaz je 50%. Dopušteno je korištenje
- // interneta i materijala s predavanja, ali nije dopušten nikakav oblik varanja,
- // ukljuèujuæi prepisivanje od drugih. Varanje ili bilo kakav pokušaj varanja rezultirat
- // æe najstrožim sankcijama.
- // Zadatak 1.: Pošaljite zahtjev i dohvatite JSON podatke o igricama s
- // http://output.jsbin.com/yoluyoqowa.json. Svaka igrica definirana je imenom (name),
- // rejtingom (rating), nizom platformi na kojima je igra dostupna (platforms) i datumom
- // objave igre (released, u formatu YYYY-mm-DD). Ukoliko ne uspijete, otvorite navedeni
- // URL i kopirajte podatke u varijablu data da možete nastaviti raditi (ali bez priznatih
- // bodova). (10 bodova)
- // Zadatak 2.: Dinamièki pronaðite prosjeèan rejting igre i najrjeðe platforme za koju je
- // igra objavljena. (20 bodova)
- // Zadatak 3.: Dinamièki provjerite koji se dani u tjednu puštanja igrice ponavljaju.
- // Koji je najèešæi mjesec puštanja igrice? (20 bodova)
- // Zadatak 4.: Prebrojte sve samoglasnike u imenima igara. Koliko se puta javljaju dva
- // samoglasnika uzastopno? (15 bodova)
- // Zadatak 5.: Napravite algoritam koji æe generirati špil karata i nasumièno ga
- // podijeliti na dva jednaka dijela, te izvuæi jednu kartu s vrha iz oba dijela
- // špila i odrediti koji dio ima veæu kartu. U sluèaju da je karta ista, izvlaèi
- // se nova sve dok jedan dio špila ne bude jaèi. As je najjaèa karta. (20 bodova)
- // Zadatak 6.: Koristeæi se HTML-om i CSS-om, napravite vertikalno i horizontalno
- // centrirane, razlièito obojene kvadrate, bez korištenja tablica, koji prikazuju
- // ime i rejting igre. Animirajte im transparentnost tijekom 4s. (15 bodova)
- function loadData(url, cb) {
- var xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- cb(JSON.parse(this.responseText));
- }
- };
- xmlhttp.open("GET", url, true);
- xmlhttp.send();
- }
- function parseData(data) {
- //avgRating(data);
- //releaseDay(data);
- //vowelsCount(data);
- createDivs(data, randomColors);
- }
- loadData("https://output.jsbin.com/yoluyoqowa.json", parseData);
- function avgRating(data) {
- var sum = 0;
- var platforms = {};
- data.forEach(function(key) {
- sum += key.rating;
- key.platforms.forEach(function(item) {
- var x = item.toLowerCase();
- if (!platforms[x]) platforms[x] = 0;
- platforms[x]++;
- })
- });
- var min = Infinity;
- var rarest = [];
- Object.keys(platforms).forEach(function(key) {
- var value = platforms[key];
- if (value < min) {
- min = value;
- rarest = [];
- rarest.push(key);
- } else if (value === min) {
- rarest.push(key);
- }
- });
- console.log('Prosjeèni rating je: ' + sum / data.length);
- console.log('Najrjeðe platforme su: ' + rarest);
- }
- function releaseDay(data) {
- var days = {};
- var months = {};
- var repeatDays = [];
- data.forEach(function(key) {
- var day = new Date(key.released).toLocaleString("hr-HR", {
- weekday: 'long'
- });
- var month = new Date(key.released).toLocaleString("hr-HR", {
- month: 'long'
- });
- if (!days[day]) days[day] = 0;
- days[day]++;
- if (days[day] > 1 && repeatDays.indexOf(day) === -1) {
- repeatDays.push(day);
- }
- if (!months[month]) months[month] = 0;
- months[month]++;
- });
- var max = -Infinity;
- var mostRepeated;
- Object.keys(months).forEach(function(key) {
- var value = months[key];
- if (value > max) {
- max = value;
- mostRepeated = key;
- }
- });
- console.log('Dani koji se ponavljaju: ' + repeatDays);
- console.log('Najèešæi mjesec puštanja igre je: ' + mostRepeated)
- }
- function vowelsCount(data) {
- var vowelsCount = 0,
- consecutive = 0,
- term = 0;
- data.forEach(function(key) {
- Array.from(key.name).forEach(function(item) {
- if ('aeiou'.includes(item.toLowerCase())) {
- vowelsCount++;
- term++
- } else {
- term = 0;
- }
- if (term > 1) {
- consecutive++;
- }
- });
- });
- console.log('Broj samoglasnika u nazivu igrica ' + vowelsCount);
- console.log('Broj uzastopnih samoglasnika u nazivu igrica je ' + consecutive);
- }
- function randomColors(){
- return '#' + ('000000' + ((Math.random()*16777215).toString(16))).slice(-6);
- }
- function createDivs(data, callback) {
- const container = document.getElementById('card-container');
- data.forEach((game) => {
- const content = `
- <div class="card">
- ${game.name} - ${game.rating}
- </div>
- `
- ;
- container.innerHTML += content;
- });
- const cardList = document.querySelectorAll('.card');
- var color =
- for(let i = 0; i < cardList.length; i++){
- cardList[i].style.backgroundColor = callback();
- }
- }
- ////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////
- // FRONTEND 26.01.2017.
- // Ime i prezime: [UPISATI OVDJE]
- // Zadatak 1.: Pošaljite zahtjev i dohvatite JSON podatke o tenisaèima s
- // https://api.myjson.com/bins/11m58t. Svaki tenisaè definiran je imenom (name), godinama (age),
- // rejtingom (rating), najdražim podlogama (favouriteCourtType) i datumom
- // kad se poèeo bavit tenisom profesionalno (turnedPro, u formatu YYYY-mm-DD). Ukoliko ne uspijete, otvorite navedeni
- // URL i kopirajte podatke u varijablu data da možete nastaviti raditi (ali bez priznatih
- // bodova). (10 bodova)
- // Zadatak 2.: Dinamièki pronaðite prosjeènu starost svih igraèa te je zaokružite na dvije decimale i ispišite. Zatim sortirajte igraèe po ratingu te ih ispišite nakon sortiranja (u obliku rating - name). (20 bodova)
- // Zadatak 3.: Dinamièki provjerite koja je vrsta podloge najmanje omiljena meðu igraèima(Hard court, grass ili clay).
- // (25 bodova)
- // Zadatak 4.: Dinamièki provjerite koji igraè ima najdužu profesionalnu karijeru. Ispišite koji je to igraè i koliko godina se profesionalno bavi tenisom. (15 bodova)
- // Zadatak 5.: Prebrojte sve samoglasnike u imenima igraèa i ispišite koliko ih ima kod svakog igraèa. (15 bodova)
- // Zadatak 6.: Koristeæi se HTML-om i CSS-om, napravite vertikalno i horizontalno
- // centrirane, razlièito obojene kvadrate, bez korištenja tablica, koji prikazuju
- // igraèa i njegov rating. Animirajte im transparentnost tijekom 2s. (15 bodova)
- function loadData(url, cb) {
- var xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- cb(JSON.parse(this.responseText));
- }
- };
- xmlhttp.open("GET", url, true);
- xmlhttp.send();
- }
- function parseData(data) {
- console.log("\n2. zadatak:");
- getAvg(data);
- console.log("\n3. zadatak - Najmanje omiljena podloga meðu igraèima je:");
- atLeastFavorite(data);
- console.log("\n4. zadatak - Najdužu profesionalnu karijeru ima:");
- longestPro(data, dateDiffInDays);
- console.log("\n5. zadatak - Ispis broja samoglasnika u imenu kod svakog igraèa:");
- countVowels(data);
- createContainers(data, getRandomColor);
- }
- loadData("https://api.myjson.com/bins/11m58t", parseData);
- function getAvg(data) {
- var sum = 0;
- data.forEach(function(key) {
- sum += key.age;
- })
- console.log('Prosjek svih igraèa iznosi: ' + parseFloat(sum / data.length).toFixed(2));
- data.sort((a, b) => a.rating - b.rating)
- data.forEach(key => console.log(key.name + ' - ' + key.rating));
- }
- function atLeastFavorite(data) {
- var court = {};
- data.forEach(function(key) {
- key.favouriteCourtType.forEach(function(type) {
- if (!court[type]) court[type] = 0;
- court[type]++
- })
- })
- var min = Infinity;
- var minEl;
- Object.keys(court).forEach(function(key) {
- var broj = court[key];
- if (broj < min) {
- min = court[key];
- minEl = key;
- }
- });
- console.log(minEl);
- }
- //razlika izmeðu dva datuma izražena u danima
- function dateDiffInDays(a, b) {
- const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
- const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
- return Math.abs(Math.floor((utc2 - utc1) / (1000 * 60 * 60 * 24)));
- }
- //prima data i dateDiffInDays()
- function longestPro(data, callback) {
- /*
- //stvara novi niz sa imenom i razlikom izmeðu današnjeg dana i
- // dana kada je igraè postao Pro pritom koristeæi dateDiffInDays koja vraæa
- // razliku izmeðu ta dva datuma u danima i postavlja to u property daysDiff
- var proPeriod = [];
- var date1 = new Date();
- data.forEach(function(key){
- var date2 = new Date(key.turnedPro);
- proPeriod.push({
- name: key.name,
- daysDiff: callback(date2, date1)
- });
- })
- proPeriod.sort((a,b) => (a.daysDiff < b.daysDiff) ? 1 : ((a.daysDiff > b.daysDiff) ? -1 : 0));
- console.log(proPeriod[0].name + ' - ' + Math.floor(proPeriod[0].daysDiff/365)); */
- data.sort((a, b) => (a.turnedPro > b.turnedPro) ? 1 : ((a.turnedPro < b.turnedPro) ? -1 : 0));
- var d = new Date();
- console.log(data[0].name + ' - ' + (d.getFullYear() - data[0].turnedPro.split('-')[0]) + ' godina');
- }
- function countVowels(data) {
- data.forEach(function(key) {
- var count = Array.from(key.name).filter(letter => 'AEIOUaeiou'.includes(letter)).length;
- console.log(key.name + ' ima ' + count + ' samoglasnika.');
- });
- }
- //vraæa radnom boju koja se koristi za createContainers()
- function getRandomColor() {
- var color = '#' + ('00000' + (Math.random() * 16777215).toString(16)).slice(-6)
- return color;
- }
- //prima data i funckiju getRandomColor() koja genereira random boju za background color kartica
- function createContainers(data, callback) {
- const container = document.getElementById('card-container');
- data.forEach((player) => {
- const card = document.createElement('div');
- card.classList = 'card-body';
- const content = `
- <div class="card">
- <div class="card-body">
- <h5>${player.name} - ${player.rating}</h5>
- </div>
- </div>
- `;
- container.innerHTML += content;
- });
- var cardList = document.querySelectorAll(".card");
- for (var i = 0; i < cardList.length; i++) {
- cardList[i].style.backgroundColor = callback();
- }
- }
- //////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
- // Ulazni test 21.2.2019.
- // Ime i prezime: [Ivan Ostojiæ]
- // Napomene: Vrijeme trajanja testa je 1 sat i 45 minuta. Prolaz je 50%. Dopušteno je korištenje
- // interneta i materijala s predavanja, ali nije dopušten nikakav oblik varanja,
- // ukljuèujuæi prepisivanje od drugih.
- // Zadatak 1.
- // Napraviti funkciju za dohvat podataka koja ima 2 parametra "url" i "callback".
- // Dohvatiti podatke sa https://api.myjson.com/bins/gnte0 i pozvati callback (fukcija za obradu podataka).
- // Ukoliko ne uspijete, otvorite navedeni URL i kopirajte podatke u varijablu data da možete nastaviti raditi.
- // (ali bez priznatih bodova). (5 bodova)
- // Zadatak 2.
- // Napraviti funkciju koja æe sortirati dobivene podatke ("songs") po id-u (od najveæeg id-a prema najmanjem) i nakon sortiranja
- // ispisati podatke u obliku "id - songName - artist" ("artist" se nalazi u property-ju "artists"). (10 bodova)
- // Zadatak 3.
- // Napraviti funkciju koja æe sortirati dobivene podatke ("songs") po "songLength" (format songLength-a je minutes:seconds),
- // sortirati od najduže pjesme prema najkraæoj i nakon sortiranja ispisati 3 najduže pjesme. (15 bodova)
- // Zadatak 4.
- // Napraviti funkciju koja provjerava koji se žanr glazbe najviše ponavlja meðu navedenim pjesmama i ako se ponavlja
- // u bar 3 pjesme, ispišite taj žanr. (25 bodova)
- // Zadatak 5.
- // Napraviti funkciju koja æe iz "debut" property-ja izvuæi datum objavljivanja pjesme te ispisati za svaku pjesmu
- // na koji je dan u tjednu izašla. Zatim ispisati dane koji se ponavljaju više od jednog puta i napisati
- // koliko se puta ponavljaju ti dani. (25 bodova)
- // Zadatak 6.
- // Napišite funkciju koja æe rekurzivno iz niza "songs" ispisati nazive svih pjesama (property "songName"). (20 bodova)
- function loadData(url, callback) {
- var xhttp = new XMLHttpRequest();
- xhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- callback(JSON.parse(this.response))
- }
- };
- xhttp.open("GET", url, true);
- xhttp.send();
- }
- let parseData = function (data){
- zadatak5(data.songs)
- }
- let zadatak2 = function (data){
- let formatiraniJson = JSON.parse(JSON.stringify(data));
- // Bespotrebno u ovom slucaju ali sam mislio da cu ovu funkciju opet koristiti tj. return nesto pa nisam htio mijenjati originalni objekt
- let sortirane = formatiraniJson.songs.sort(function(a,b) {
- return b.id - a.id;
- });
- let pjesnici = Object.entries(formatiraniJson.artists)
- sortirane.forEach(function(item){
- item.song = pjesnici.find(el => el[0] == item.id)
- console.log(`${item.id} - ${item.songName} - ${item.song[1]}`)
- })
- }
- let zadatak3 = function (data){
- data.forEach(function(item){
- let minute = parseInt(item.songLength)
- let sekunde = parseInt(item.songLength.slice(-2)) + minute*60
- item.duljinaPjesme = sekunde;
- })
- data.sort(function(a,b) {
- return b.duljinaPjesme - a.duljinaPjesme;
- });
- for (i=0; i<3; i++)
- console.log(data[i].songName)
- }
- let zadatak4 = function (data){
- let genres = []
- data.forEach(item =>
- item.genre.forEach(it =>
- genres.push(it)
- ))
- let counts = {};
- genres.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });
- let repeatingSongs = (Object.entries(counts).filter(([key,value]) => value > 2))
- repeatingSongs.forEach(([key,value]) => console.log(key))
- }
- let zadatak5 = function (data){
- let dani = [];
- data.forEach(function(item) {
- let dan = new Date(item.debut).toLocaleString('en-us', { weekday: 'long' })
- console.log(`${item.songName} - ${dan}`)
- dani.push(dan)
- })
- let counts = {};
- dani.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });
- Object.entries(counts).forEach(([key,value]) => {
- if(value > 1) console.log(`${key} - ${value}`)
- })
- }
- let zadatak6 = function (songs){
- if (songs.length == 0) return;
- else console.log(songs.shift().songName)
- zadatak6(songs)
- }
- loadData("https://api.myjson.com/bins/gnte0", parseData)
- ////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////
- // FRONTEND 26.01.2017.
- // Ime i prezime: [UPISATI OVDJE]
- // Zadatak 1.: Pošaljite zahtjev i dohvatite JSON podatke o tenisaèima s
- // https://api.myjson.com/bins/11m58t. Svaki tenisaè definiran je imenom (name), godinama (age),
- // rejtingom (rating), najdražim podlogama (favouriteCourtType) i datumom
- // kad se poèeo bavit tenisom profesionalno (turnedPro, u formatu YYYY-mm-DD). Ukoliko ne uspijete, otvorite navedeni
- // URL i kopirajte podatke u varijablu data da možete nastaviti raditi (ali bez priznatih
- // bodova). (10 bodova)
- // Zadatak 2.: Dinamièki pronaðite prosjeènu starost svih igraèa te je zaokružite na dvije decimale i ispišite. Zatim sortirajte igraèe po ratingu te ih ispišite nakon sortiranja (u obliku rating - name). (20 bodova)
- // Zadatak 3.: Dinamièki provjerite koja je vrsta podloge najmanje omiljena meðu igraèima(Hard court, grass ili clay).
- // (25 bodova)
- // Zadatak 4.: Dinamièki provjerite koji igraè ima najdužu profesionalnu karijeru. Ispišite koji je to igraè i koliko godina se profesionalno bavi tenisom. (15 bodova)
- // Zadatak 5.: Prebrojte sve samoglasnike u imenima igraèa i ispišite koliko ih ima kod svakog igraèa. (15 bodova)
- // Zadatak 6.: Koristeæi se HTML-om i CSS-om, napravite vertikalno i horizontalno
- // centrirane, razlièito obojene kvadrate, bez korištenja tablica, koji prikazuju
- // igraèa i njegov rating. Animirajte im transparentnost tijekom 2s. (15 bodova)
- function loadData(url, cb) {
- var xmlhttp = new XMLHttpRequest();
- xmlhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- cb(JSON.parse(this.responseText));
- }
- };
- xmlhttp.open("GET", url, true);
- xmlhttp.send();
- }
- function parseData(data) {
- console.log("\n2. zadatak:");
- getAvg(data);
- console.log("\n3. zadatak - Najmanje omiljena podloga meðu igraèima je:");
- atLeastFavorite(data);
- console.log("\n4. zadatak - Najdužu profesionalnu karijeru ima:");
- longestPro(data, dateDiffInDays);
- console.log("\n5. zadatak - Ispis broja samoglasnika u imenu kod svakog igraèa:");
- countVowels(data);
- createContainers(data, getRandomColor);
- }
- loadData("https://api.myjson.com/bins/11m58t", parseData);
- function getAvg(data) {
- var sum = 0;
- data.forEach(function(key) {
- sum += key.age;
- })
- console.log('Prosjek svih igraèa iznosi: ' + parseFloat(sum / data.length).toFixed(2));
- data.sort((a, b) => a.rating - b.rating)
- data.forEach(key => console.log(key.name + ' - ' + key.rating));
- }
- function atLeastFavorite(data) {
- var court = {};
- data.forEach(function(key) {
- key.favouriteCourtType.forEach(function(type) {
- if (!court[type]) court[type] = 0;
- court[type]++
- })
- })
- var min = Infinity;
- var minEl;
- Object.keys(court).forEach(function(key) {
- var broj = court[key];
- if (broj < min) {
- min = court[key];
- minEl = key;
- }
- });
- console.log(minEl);
- }
- //razlika izmeðu dva datuma izražena u danima
- function dateDiffInDays(a, b) {
- const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
- const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
- return Math.abs(Math.floor((utc2 - utc1) / (1000 * 60 * 60 * 24)));
- }
- //prima data i dateDiffInDays()
- function longestPro(data, callback) {
- /*
- //stvara novi niz sa imenom i razlikom izmeðu današnjeg dana i
- // dana kada je igraè postao Pro pritom koristeæi dateDiffInDays koja vraæa
- // razliku izmeðu ta dva datuma u danima i postavlja to u property daysDiff
- var proPeriod = [];
- var date1 = new Date();
- data.forEach(function(key){
- var date2 = new Date(key.turnedPro);
- proPeriod.push({
- name: key.name,
- daysDiff: callback(date2, date1)
- });
- })
- proPeriod.sort((a,b) => (a.daysDiff < b.daysDiff) ? 1 : ((a.daysDiff > b.daysDiff) ? -1 : 0));
- console.log(proPeriod[0].name + ' - ' + Math.floor(proPeriod[0].daysDiff/365)); */
- data.sort((a, b) => (a.turnedPro > b.turnedPro) ? 1 : ((a.turnedPro < b.turnedPro) ? -1 : 0));
- var d = new Date();
- console.log(data[0].name + ' - ' + (d.getFullYear() - data[0].turnedPro.split('-')[0]) + ' godina');
- }
- function countVowels(data) {
- data.forEach(function(key) {
- var count = Array.from(key.name).filter(letter => 'AEIOUaeiou'.includes(letter)).length;
- console.log(key.name + ' ima ' + count + ' samoglasnika.');
- });
- }
- //vraæa radnom boju koja se koristi za createContainers()
- function getRandomColor() {
- var color = '#' + ('00000' + (Math.random() * 16777215).toString(16)).slice(-6)
- return color;
- }
- //prima data i funckiju getRandomColor() koja genereira random boju za background color kartica
- function createContainers(data, callback) {
- const container = document.getElementById('card-container');
- data.forEach((player) => {
- const card = document.createElement('div');
- card.classList = 'card-body';
- const content = `
- <div class="card">
- <div class="card-body">
- <h5>${player.name} - ${player.rating}</h5>
- </div>
- </div>
- `;
- container.innerHTML += content;
- });
- var cardList = document.querySelectorAll(".card");
- for (var i = 0; i < cardList.length; i++) {
- cardList[i].style.backgroundColor = callback();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement