Setovi predstavljaju novu funkcionalnost u JavaScript-u, uvedenu sa ES6 standardom. Hajde da detaljnije istražimo njihovu svrhu i upotrebu.
Šta su zapravo setovi?
Kako se koriste unutar JavaScript okruženja?
Koje metode su dostupne za rešavanje konkretnih programerskih izazova?
U ovom vodiču ćemo pokušati da damo odgovore na sva ova pitanja.
Setovi u JavaScript-u
Kao što sam naziv implicira, set je kolekcija koja čuva isključivo jedinstvene elemente. Dakle, duplirani podaci se ne mogu čuvati unutar seta.
U JavaScript-u, setovi elemente skladište po redosledu njihovog unosa. To znači da su setovi u JavaScript-u uređene kolekcije, sposobne za čuvanje i primitivnih tipova podataka i kompleksnih objekata.
Pogledajmo sintaksu pomoću koje kreiramo setove u JavaScript-u.
Preporučuje se da koristite odgovarajući IDE (Integrated Development Environment) kako biste isprobali primere koji slede.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); console.log(imena); const nasumicnaRec = new Set("Pooooozdrav"); console.log(nasumicnaRec); const brojevi = new Set([5, 5, 5, 2, 1, 1, 2, 3]); console.log(brojevi);
Osobine i metode setova
Setovi poseduju različite osobine (properties) i metode koje nam olakšavaju manipulaciju i rešavanje problema. Njihova primena je prilično jednostavna, a imena metoda su intuitivna i olakšavaju razumevanje njihove funkcije. Pogledajmo ih detaljnije, jednu po jednu.
veličina (size)
Osobina „size“ vraća broj elemenata koji se trenutno nalaze u setu.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); console.log(`Veličina: ${imena.size}`);
dodaj (add)
Metoda „add“ se koristi za dodavanje novog elementa u set. Ako element koji pokušavamo da dodamo već postoji u setu, on neće biti ponovo dodat.
// Prazan set const imena = new Set(); imena.add("Jovan"); imena.add("Marko"); imena.add("Petar"); imena.add("Luka"); imena.add("Marko"); console.log(imena);
ima (has)
Metoda „has“ prima jedan argument i vraća „true“ ako se taj element nalazi u setu, u suprotnom vraća „false“.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); console.log(imena.has("Marko")); console.log(imena.has("Ana"));
izbriši (delete)
Kao što se i očekuje, metoda „delete“ prima argument i uklanja ga iz seta. Neće generisati grešku čak i ako dati argument ne postoji unutar seta.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); imena.delete("Jovan"); console.log(imena);
unosi (entries)
Metoda „entries“ vraća iterator koji sadrži nizove parova ključ/vrednost, poređane po redosledu unosa. U ovom slučaju, ključ i vrednost su uvek isti.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); const unosi = imena.entries(); console.log(unosi.next().value); console.log(unosi.next().value); console.log(unosi.next().value); console.log(unosi.next().value); console.log(unosi.next().value);
ključevi (keys)
Metoda „keys“ vraća iterator elemenata seta, poređanih po redosledu unosa.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); const kljucevi = imena.keys(); console.log(kljucevi.next().value); console.log(kljucevi.next().value); console.log(kljucevi.next().value); console.log(kljucevi.next().value); console.log(kljucevi.next().value);
vrednosti (values)
Metoda „values“ vraća iterator elemenata seta, poređanih po redosledu unosa, slično metodi „keys“.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); const vrednosti = imena.values(); console.log(vrednosti.next().value); console.log(vrednosti.next().value); console.log(vrednosti.next().value); console.log(vrednosti.next().value); console.log(vrednosti.next().value);
očisti (clear)
Metoda „clear“ uklanja sve elemente iz seta.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); imena.clear(); console.log(imena);
za svaki (forEach)
Metoda „forEach“ se koristi za iteriranje kroz set i dobijanje svakog elementa ponaosob.
const imena = new Set(["Jovan", "Marko", "Petar", "Luka", "Marko"]); imena.forEach((element) => { console.log(element); });
Dodatno
Razmotrimo jednostavnu praktičnu primenu setova kroz primer. Zadatak je da iz datog niza uklonimo sve duplikate vrednosti. Jedinstvenost setova je idealna za rešenje ovog problema.
Procedura rešavanja:
- Inicijalizujte niz sa test podacima.
- Inicijalizujte prazan set.
- Iterirajte kroz niz elemenata.
- Dodajte svaki element u set.
- Automatski će biti uklonjeni svi duplikati.
- Inicijalizujte prazan niz.
- Iterirajte kroz set i dodajte svaki element u novi niz.
- Ispišite novi niz.
Preporučuje se da pokušate sami da rešite zadatak. Ako vam je potrebna pomoć, pogledajte ponuđeno rešenje ispod.
const niz = ["Jovan", "Marko", "Petar", "Luka", "Marko"]; const privremeniSet = new Set(); niz.forEach((element) => { privremeniSet.add(element); }); const noviNiz = []; privremeniSet.forEach((element) => { noviNiz.push(element); }); console.log(noviNiz);
Zaključak
Sada posedujete potrebno znanje za rad sa setovima u JavaScript-u. Slobodno ih koristite u sledećim projektima. U potpunosti iskoristite sve njihove mogućnosti.
Srećno sa kodiranjem! 👨💻