JavaScript2 - vjezbe sa predavanja Flashcards
Učitati 8 brojeva.
Ispisati četvrti uneseni broj te zbroj prvog i petog unesenog broja.
var arr = [];
for(var i = 0; i < 8; i++){
arr[i] = parseInt(prompt(‘Unesite broj:’));
//ILI: arr.push(parseInt(prompt(‘Unesite broj:’)));
}
console.log(‘Cetvrti uneseni broj je ‘ + arr[3]);
console.log(‘Zbroj prvog i petog broja je ‘ + (arr[0]+arr[4]));
Deklarirati niz i popuniti ga cijelim brojevima. Ispisati prvi, srednji i zadnji element niza. (kod mora raditi za bilo koji niz, neovisno o broju elemenata).
var arr = [],
len = parseInt(prompt(‘Unesite duljinu niza:’)),
midIndex,
mid;
for(var i = 0; i < len; i++){ arr[i] = parseInt(prompt('Unesite broj:')); //ILI: arr.push(parseInt(prompt('Unesite broj:'))); } midIndex = parseInt((len-1)/2);
if(len % 2 === 0){ mid = arr[midIndex] + ' i ' + (arr[midIndex]+1); } else { mid = arr[midIndex]; }
console. log(‘Prvi uneseni broj ‘ + arr[0]);
console. log(‘Srednji uneseni broj/evi ‘ + mid);
console. log(‘Zadnji uneseni broj ‘ + arr[arr.length-1]);
Deklarirati prazan niz i popuniti ga sa 50 cijelih brojeva (petljom).
Nakon što se niz popuni u drugoj petlji uraditi računicu prosječne vrijednosti članova niza.
var arr = [], sum = 0;
for(var i = 1; i <= 50; i++){ arr.push(i); } for(i = 0; i < arr.length; i++){ sum += arr[i]; } console.log('Prosjecna vrijednost iznosi ' + (sum/arr.length));
Učitavati brojeve u niz sve dok im zbroj ne prijeđe 150.
Ispisati niz sortiran od najvećeg prema najmanjem.
var arr = [], sum = 0, temp;
while (sum <= 150) { var num = parseInt(prompt('Unesite broj:')); arr.push(num); sum += num; }
for (var i = 0; i < arr.length; i++) { for (var j = i+1; j < arr.length; j++) { if(arr[i] < arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } console.log('Niz poredan od najvećeg ka najmanjem je ', arr);
Zatražiti od korisnika unos nekog stringa. Ispisati koliko ima samoglasnika u tom stringu.
Ispisati prvih 5 slova unesenog stringa.
var text = prompt('Unesite tekst'), newText = '', vowelCounter = 0, letterCounter = 0;
for(var i = 0; i < text.length; i ++) {
if(text[i] === ‘a’ || text[i] === ‘e’ || text[i] === ‘i’ || text[i] === ‘o’ || text[i] === ‘u’ || text[i] === ‘A’ || text[i] === ‘E’ || text[i] === ‘I’ || text[i] === ‘O’ || text[i] === ‘U’) {
vowelCounter++;
}
}
console.log(‘Broj samoglasnika: ‘ + vowelCounter);
for(var i = 0; i < text.length; i ++) {
if(letterCounter < 5 && ((text[i] >= ‘a’ && text[i] <= ‘z’) || (text[i] >= ‘A’ && text[i] <= ‘Z’))) {
newText += text[i];
letterCounter++;
}
}
console.log(‘Prvih 5 slova unesenog teksta: ‘ + newText);
Deklarirati niz koji se sastoji od 5 riječi.
Napisati funkciju koja vraća najdulju i najkraću riječ iz niza te ispisati rezultat u glavnom programu.
function wordLength(words) { var shortest = words[0], longest = words[0];
for (var i = 0; i < words.length; i++) { if (shortest.length > words[i].length) { shortest = words[i]; } if (longest.length < words[i].length) { longest = words[i]; } } return ('Najkraća rijec je "' + shortest + '", a najdulja "' + longest + '".'); }
var textArray = ['Programming', 'we', 'love']; console.log(wordLength(textArray));
Učitati niz od 10 brojeva. Ispisati najveći i najmanji član niza, zatim poredati članove niza po veličini - od najvećeg prema najmanjem i ispisati ga, potom od najmanjeg prema najvećem i njega također ispisati.
let arr = [1, 34, 45, 56, 102, -2, -512, 0, 12]; let smallestNumber = arr[0]; let biggestNumber = arr[0];
function smallestNumberFunc(a) {
for(let i = 0; i < arr.length; i++) { if(arr[i] < smallestNumber) { smallestNumber = arr[i];
}
}
return smallestNumber;
}
function biggestNumberFunc(a) {
for(let i = 0; i < arr.length; i++) { if(arr[i] > biggestNumber) { biggestNumber = arr[i]; } } return biggestNumber; }
function sortArrayAsc(a){ for(let i = 0; i < arr.length; i++) { for(let j = 0; j < i; j++) { if(arr[i] < arr[j]) { let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
} } } return arr; }
function sortArrayDesc(a) { for(let i = 0; i < arr.length; i++) { for(let j = 0; j < i; j++) { if(arr[i] > arr[j]) { let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
} } } return arr; }
console. log(‘Smallest number ‘ + smallestNumberFunc(arr));
console. log(‘Biggest number ‘ + biggestNumberFunc(arr));
console. log(‘Sorted array ascending ‘ + sortArrayAsc(arr));
console. log(‘Sorted array decending ‘ + sortArrayDesc(arr));
// code by admir
atražiti od korisnika unos 10 brojeva u niz. Izbaciti iz postojećeg niza zadnja tri broja i dodati broj 25 na kraj niza.
var arr = [];
for(var i = 0; i < 10; i++) {
arr.push(parseInt(prompt(‘Unesite ‘ + (i+1) + ‘. broj:’)));
}
// OBJAŠNJENJE:
// .splice(startni index, broj elemenata koje će ukloniti počevši od startnog indexa, element kojega će dodati na startni index)
arr.splice(arr.length-3, 3, 25);
// Ukoliko želimo spremiti izbačene elemente u drugi niz, napisati ćemo ovako: // var arr2 = arr.splice(arr.length-3, 3, 25); console.log(arr);
Zadan je niz cijena kupljenih proizvoda:
var prices = [‘KM 1.00’, ‘KM 1.85’, ‘KM 19.99’];
Zbrojiti ukupan iznos koji treba platiti.
(metoda slice)
var prices = ['KM 1.00', 'KM 1.85', 'KM 19.99'], sum = 0;
for(var i = 0; i < prices.length; i++) { sum += parseFloat(prices[i].slice(3)); // Mogli smo napisati i: // sum += parseFloat(prices[i].slice(0, prices[i].length-3)); } console.log('Iznos za platiti: ' + sum);
// OBJAŠNJENJE: // .slice(startni index, završni index);
// SLICE ne mijenja originalni niz, za razliku od SPLICE-a!
Zadan je niz cijena kupljenih proizvoda:
var prices = [‘KM 1.00’, ‘KM 1.85’, ‘KM 19.99’];
Zbrojiti ukupan iznos koji treba platiti.
(metoda split)
var prices = ['KM 1.00', 'KM 1.85', 'KM 19.99'], sum = 0, price;
for(var i = 0; i < prices.length; i++) { price = prices[i].split(' '); sum += parseFloat(prices[1]); } console.log('Iznos za platiti: ' + sum);
// OBJAŠNJENJE: // Metoda split() // .split(uvjet po kojemu splitamo string);
// Ako stavimo .split(‘’), dobit ćemo novi niz sastavljen od svakog znaka kojeg string sadrži, npr.:
// var txt = 'Danas je petak.'; // var splitted = txt.split(''); // console.log(splitted); // ispis: ['D', 'a', 'n', 'a', 's', ' ', 'j', 'e', ' ', 'p', 'e', 't', 'a', 'k', '.']
// console.log(splitted[2]); // ispis: 'n'
// SPLIT ne mijenja originalni string
Zatražite od korisnika unos 5 dvoznamenkastih različitih brojeva u niz.
Pobrinite se da korisnik mora unijeti točno 5 brojeva. Unos istih brojeva te onih koji nisu dvoznamenkasti ne smije biti dopušten.
var numbers = [], num;
// Ponavljaj dok niz ne bude sadržavao točno 5 elemenata while (numbers.length < 5) { num = parseInt(prompt('Unesite dvoznamenkasti broj'));
// Ako se broj nalazi u intervalu 10-99 (tj. ako je dvoznamenkast) // i ako ne postoji već u nizu 'numbers' if ((num > 9 && num < 100) && numbers.indexOf(num) === -1) { // Dodaj broj u niz numbers.push(num); } }
console.log(‘Uneseni brojevi: ‘ + numbers);
Napraviti matricu 3x3.
Popuniti ju sa brojevima 1-9.
Ispisati prvi redak matrice.
Ispisati cijelu matricu (svaki broj u novom redu).
var matrix = [], row = [], elem = 1;
for(var i = 0; i < 3; i++) { row = []; for(var j = 0; j < 3; j++) { row.push(elem++); } matrix.push(row); } console.log('Prvi redak matrice: ', matrix[0]); console.log('Svaki broj u novom redu:');
for(var i = 0; i < 3; i++) { for(var j = 0; j < 3; j++) { console.log(matrix[i][j]); } }
Napraviti matricu 3x3. Prvi redak neka se sastoji od brojeva 2, 4 i 6, drugi redak od istih brojeva na kvadrat, treći od istih brojeva na treću potenciju.
// Problem rijesen sa for petljom
let matrix = []; let elem = 2;
for(let i = 0; i < 3; i++) {
let row = [];
matrix.push(row);
}
for(let j = 0; j < 3; j++) { for(let z = 0; z < 3; z++) { if(j === 0) matrix[j][z] = elem; elem+=2; if (j == 1) matrix[j][z] = Math.pow(matrix[0][z],2); if (j == 2) matrix[j][z] = Math.pow(matrix[0][z],3); } }
// Problem rijesen bez for petlje
// // prvi red // matrix[0][0] = 2; // matrix[0][1] = 4; // matrix[0][2] = 6;
// // drugi red na kvadrat // matrix[1][0] = Math.pow(matrix[0][0],2); // matrix[1][1] = Math.pow(matrix[0][1],2); // matrix[1][2] = Math.pow(matrix[0][2],2);
// // treci red na trecu // matrix[2][0] = Math.pow(matrix[0][0],3); // matrix[2][1] = Math.pow(matrix[0][1],3); // matrix[2][2] = Math.pow(matrix[0][2],3);
// citava matrica console.log(matrix);
Deklarirati objekt kuća.
Deklarirati property-e: brojKatova, brojKvadrata, bojaFasade i pridijeliti im proizvoljne vrijednosti.
Ispisati property-e na sljedeći način: console.log(‘Imam kuću na ‘ + broj katova + ‘ sa ‘ + broj kvadrata + ‘. Boja fasade je ‘ + boja fasade + ‘.’);
var kuca = { brojKatova: 2, brojKvadrata: 200, bojaFasade: 'zuta' };
console.log(‘Imam kucu na ‘ + kuca.brojKatova + ‘ sa ‘ + kuca.brojKvadrata + ‘. Boja fasade je ‘ + kuca.bojaFasade + ‘.’);
Prepraviti prvi zadatak korištenjem drugog načina definiranja property-a.
var kuca = {};
kuca. brojKatova = 2;
kuca. brojKvadrata = 200;
kuca. bojaFasade = ‘zuta’;
console.log(‘Imam kucu na ‘ + kuca.brojKatova + ‘ sa ‘ + kuca.brojKvadrata + ‘. Boja fasade je ‘ + kuca.bojaFasade + ‘.’);
Deklarirati objekt osoba.
Deklarirati property-e: ime, prezime, brojGodina. Koristiti treći način definiranja property-a. Ispisati property-e na sljedeći način:
console.log(‘Ja sam ‘ + ime + ‘, prezime mi je ‘ + prezime + ’. Tek mi je ‘ + broj godina + ’ godina.’);
var osoba = {}; osoba['ime'] = 'Ana'; osoba['prezime'] = 'Anic'; osoba['godine'] = 20;
console.log(‘Ja sam ‘ + osoba[‘ime’] + ‘, prezime mi je ‘ + osoba[‘prezime’] + ‘. Tek mi je ‘ + osoba[‘godine’] + ‘ godina.’);
Deklarirati objekt auto.
Pomoću obične for petlje dodati 5 property-a koji počinju nazivom vlasnik…, (ne smije biti vlasnik0).
Dodijeliti im proizvoljne vrijednosti.
var auto = {}, imena = ['Ante', 'Mate', 'Nikola', 'Josip', 'Ivan'];
for(var i = 0; i < 5; i++){ auto['vlasnik' + (i+1)] = imena[i]; }
for(prop in auto){
console.log(prop + ‘ : ‘ + auto[prop]);
}
Kreirati objekt racunalo.
Dodati mu property-e hdd i ram te im dodijeliti neke numeričke vrijednosti.
Ispisati objekat, zatim izbrisati property hdd te ponovno ispisati objekt.
var racunalo = {
hdd: 500,
ram: 8
};
console.log(racunalo);
delete racunalo.hdd;
console.log(racunalo);
Kreirati objekt knjiga.
Dodijeliti mu property-e autor, ime, godina.
Koristeći for … in petlju ispisati property-e na sljedeći način:
console.log(property + ‘ - ‘ + vrijednost);
var knjiga = { autor: 'Mato Lovrak', ime: 'Vlak u snijegu', godina: 1976 };
for(prop in knjiga){
console.log(prop + ‘ - ‘ + knjiga[prop]);
}
Kreirati objekt vozilo. Dodati mu property-e tip, brojPutnika, maxBrojPutnika i dodijeliti im proizvoljne vrijednosti.
Napisati funkciju za dodavanje putnika u vozilo.
Funkcija prima objekt i željeni broj putnika za dodavanje.
U funkciji je potrebno provjeriti je li moguće dodati toliko putnika. Ako jest, dodati ih i ispisati trenutni broj putnika. Ako nije, ispisati poruku o grešci.
U glavnom programu zatražiti unos broja putnika za dodavanje i poslati ga funkciji.
var vozilo = { tip: 'auto', brojPutnika: 3, maxBrojPutnika: 5 };
function dodajPutnike(obj, broj) { if ((obj.brojPutnika + broj) <= obj.maxBrojPutnika) { obj.brojPutnika += broj; console.log('Putnici uspješno dodani! Trenutni broj putnika: ' + obj.brojPutnika); } else { console.log('Greška! Nije moguće dodati ' + broj + ' putnika.'); } }
var brojPutnika = parseInt(prompt('Unesite broj putnika za dodavanje:')); dodajPutnike(vozilo, brojPutnika);
Zadan je objekat movie : https://jsfiddle.net/9canzdvo/
Ispisati sve property-e objekta u formatu (svojstvo - vrijednost). Potrebno je ispisati sve glumce čije prezime počinje slovom ‘c’.
var movie = { name: 'The Godfather', duration: 175, rating: 9.2, actors: ['Marlon Brando', 'Al Pacino', 'James Caan', 'Richard Castellano'] };
for (var prop in movie) {
console.log(prop + ‘ - ‘ + movie[prop]);
}
for (var i = 0; i < movie.actors.length; i++) { var lastName = movie.actors[i].split(' ')[1];
if (lastName.toLowerCase().slice(0, 1) === 'c') { console.log(movie.actors[i]); } }
JS2 - 3. Predavanje - Objects I - Domaća zadaća - Zadatak 1 **
Deklarirati prazan objekt “osoba”. Zatražiti od korisnika unos vrijednosti za sljedeća 3
svojstva objekta: jmbg, ime i prezime.
Napisati funkciju koja vrši provjeru za ime i prezime - ne smiju biti kraći od 3 znaka i ne smiju sadržavati brojeve te funkciju za JMBG - ne smije sadržavati ništa osim brojeva i mora imati točno 13 brojeva.
Ukoliko provjera nije prošla, funkcija treba ispisati poruku greške i vratiti 0, ukoliko je
provjera prošla, funkcija vraća 1.
Zatražiti od korisnika unos navedenih vrijednosti. Nakon svakog unosa pozvati odgovarajuću funkciju za provjeru
i tek ako je provjera prošla, tada treba dodijeliti unesene vrijednosti svojstvima objekta.
// moje rjesenje
let osoba = {};
let inputName = prompt('Enter Your name'); let nameValue = checkName(inputName);
let inputSurname = prompt('Enter Your surname'); let surnameValue = checkSurname(inputSurname);
let inputId = prompt('Enter Your ID'); let idValue = checkID(inputId);
insertValues(nameValue, surnameValue, idValue);
function checkName(name) { if(isNaN(name) && name.length > 3) { console.log('Ime je validno ' + ' uneseno ime je ' + name); return 1; }else { console.log('Ime nije validno ' + ' vas unos: ' + name); return 0; } }
function checkSurname(surname) { if(isNaN(surname) && surname.length > 3) { console.log('Prezime je validno ' + ' uneseno prezime je ' + surname); return 1; }else { console.log('Prezime nije validno ' + ' vas unos: ' + surname); return 0; } }
function checkID(id) { if(id.length === 13) { console.log('Maticni broj validan ' + ' uneseni maticni broj je ' + id); return 1; }else { console.log('Maticni broj nije validan ' + ' vas unos: ' + id); return 0; } }
function insertValues (nameCheck, surnameCheck, idCheck) {
if(nameCheck === 1 && surnameCheck === 1 && idCheck === 1) {
osoba.ime = inputName;
osoba.prezime = inputSurname;
osoba.id = inputId;
console.log(‘Uspjesan unos podataka’);
console.log(‘Vasi podaci: ‘);
console.log(‘Ime ‘ + osoba.ime);
console.log(‘Prezime ‘ + osoba.prezime);
console.log(‘Maticni broj ‘ + osoba.id);
}else {
console.log(‘Greska pri unosu podataka’);
}
}
Deklarirati objekt auto sa property-em stanje.
Deklarirati unutar objekta i dvije metode vozi() i stani() koje će mijenjati property stanje i vraćati novu vrijednost property-a stanje.
Ispisati stanje vozila na početku, te nakon poziva svake metode.
var auto = { stanje: 'pocetno', vozi: function () { auto.stanje = 'vozi'; return auto.stanje; }, stani: function () { auto.stanje = 'stoji'; return auto.stanje; } };
console. log(auto.stanje);
console. log(auto.vozi());
console. log(auto.stani());
Deklarirati objekt time sa property-em seconds. Property-u dodijeliti neku numeričku vrijednost.
Objektu dodati metodu convertToMin() koja će preračunati sekunde u minute i sekunde.
Metoda treba objektu dodati novi property minutes, u njega pohraniti broj minuta te, sukladno tome, ažurirati broj sekundi pohranjenih u property-u seconds.
Pozvati metodu.
var time = { seconds: 112 };
time.convertToMin = function () {
time.minutes = parseInt(time.seconds / 60);
time.seconds = time.seconds % 60;
};
console. log(time.seconds);
time. convertToMin();
console. log(time.minutes + ‘:’ + time.seconds);
// moje rjesenje let time = { seconds: 360, convertToMin: function() { time.minutes = Math.floor(time.seconds / 60); time.seconds = time.seconds - (time.minutes * 60); } } console.log(time.seconds); time.convertToMin(); console.log(time.minutes); console.log(time.seconds);