Konverzija JavaScript niza u string
Objekat Array u JavaScriptu nam omogućava da ceo niz pretvorimo u string. Za to možemo koristiti sledeća dva metoda:
a.join(S) | Vraća string u kome su elementi niza odvojeni separatorom S. |
a.toString() | Vraća string u kome su elementi niza odvojeni zarezom. |
join()
Metod join() služi da sve elemente niza, po redosledu spoji u jedan string. Kao parametar mu se zadaje separator (tekst koji služi za odvajanje elemenata niza), koji nije obavezan.
a.join(separtor)
a.join()
Ako se separator ne navede, podrazumeva se "," (zarez). Takođe je moguće zadati prazan string - tada će svi elementi u stringu biti spojeni.
toString()
Metod toString() je "opšti" metod koji postoji u svim objektima. Naravno, različiti objekti ga mogu implementirati na različit način, a objekat Array to i čini. Kao i obično, ovaj metod nema parametre:
a.toString()
Kao rezultat, ovaj metod vraća string koji se sastoji od elemenata niza odvojenih zarezom. Praktično je u pitanju isti rezultat kao kada pozivamo metod join() bez parametra.
Primeri za konverziju u string
Konverzija bez korišćenja metoda
Da vidimo prvo kako bi nam bio težak život bez ovih metoda...
var a = ["Pera", "Mika", "Žika"];
var s = a[0];
for (var i=1; i<a.length; i++) {
s += "," + a[i];
}
console.log(s); // "Pera,Mika,Žika"
Dakle, prosto ciklusom prolazimo kroz sve elemente niza i dodajemo jedan po jedan u string, i to zajedno sa separatorom. Ovakav način (ili malo bolje - korišćenjem iteratora) nema svrhu ako želimo da ubacimo sve elemente u string. Međutim, ima smisla raditi "ručno" ako želimo da odredimo tačno koji elementi niza ulaze u string, a koji ne.
Primeri korišćenja metoda
var a = ["Pera", "Mika", "Žika"];
var s;
s = a.toString(); // "Pera,Mika,Žika"
s = a.join(); // "Pera,Mika,Žika"
s = a.join(""); // "PeraMikaŽika"
s = a.join(", "); // "Pera, Mika, Žika"
s = a.join(" + "); // "Pera + Mika + Žika"
s = "<studenti> <ime>" + a.join("</ime> <ime>") + "</ime> </studenti>";
// "<studenti> <ime>Pera</ime> <ime>Mika</ime> <ime>Žika</ime> </studenti>"
a = [[1,2,3], [61,62,63], [13,23,33]];
s = a.join(" - "); // 1,2,3 - 61,62,63 - 13,23,33
a = [{ime:"pera", god:17}, {ime:"mika", god:16}, {ime:"žika", god:19}];
s = a.join(); // [object Object],[object Object],[object Object]
Najpre imamo nekoliko primera koji nam pokazuju kako se koristi separator. Uz malo kreativnosti, možemo sve elemente niza predstaviti u raznim tekstualnim oblicima, kao što je npr. XML.
Obratite pažnju na poslednja dva slučaja. Vidimo šta se dešava kada su elementi niza podnizovi (matrica). Kakav god separator da zadamo, elementi podniza će biti odvojeni zarezom, na osnovu toString() metoda.
U poslednjem primeru vidimo šta se dešava kada su elementi niza obični objekti. Njihov toString() metod vraća običan tekst "[object Object]". Ako želimo da iskontrolišemo ovakve nizove, ipak moramo raditi "ručno".
- T. Valentine, J. Reid (2013): JavaScript Programmer's Reference, Apress, New York
- A. Pehlivanian, D. Nguyen (2013): Jump Start JavaScript, SitePoint Pty. Ltd., Collingwood