Delo z URLSearchParams v JavaScript
Kot že veste, pri delu s formulari in GET zahtevki v JavaScript nastanejo nizi takšne oblike:
let paramsString = 'a=1&b=2&c=3';
Včasih je potrebno programsko spremeniti
vrednost določenega parametra iz tega niza.
Pisanje kode, ki to počne, ni zelo
priročno. Zato je v JavaScript vgrajen poseben
razred URLSearchParams za delo s
takšnimi nizi.
Ustvarimo objekt tega razreda tako, da podamo parameter naš niz s parametri:
let paramsString = 'a=1&b=2&c=3';
let searchParams = new URLSearchParams(paramsString);
Oglejmo si, katere metode ima ustvarjeni objekt.
Pridobivanje vrednosti parametra
Z metodo get lahko pridobimo
vrednost parametra:
let res = searchParams.get('a');
console.log(res);
Poskusimo pridobiti vrednost neobstoječega parametra:
let res = searchParams.get('x');
console.log(res); // izpiše null
Preverjanje prisotnosti parametra
Z metodo has lahko preverimo
prisotnost parametra. Preverimo obstoječi parameter:
let res = searchParams.has('a');
console.log(res); // izpiše true
Preverimo neobstoječi:
let res = searchParams.has('x');
console.log(res); // izpiše false
Pretvorba v niz
Z metodo toString lahko pretvorimo
naš objekt nazaj v niz:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&b=2&c=3'
Spreminjanje parametrov
Z metodo set lahko spremenimo
vrednost parametra:
searchParams.set('b', 'x');
Preverimo spremembe:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&b=x&c=3'
Dodajanje parametrov
Z metodo set lahko tudi dodamo
nov parameter:
searchParams.set('d', '4');
Preverimo spremembe:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&b=2&c=3&d=4'
Dodajanje parametrov
Z metodo append lahko tudi
dodamo nov parameter:
searchParams.append('d', '4');
Preverimo spremembe:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&b=2&c=3&d=4'
Poskusimo dodati že obstoječi parameter:
searchParams.append('a', '4');
V tem primeru bo naša metoda preprosto dodala istoimenski parameter na konec:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&b=2&c=3&a=4'
V tem se kaže razlika med metodama
set in append. Prva bo spremenila
obstoječi parameter, druga pa bo preprosto dodala
njegovo dvojnico na konec.
Brisanje parametrov
Z metodo delete lahko brišemo
parametre:
searchParams.delete('b');
Preverimo spremembe:
let res = searchParams.toString();
console.log(res); // izpiše 'a=1&c=3'
Ponavljanje parametrov z zanko
Parametre lahko ponavljamo z zanko:
for (let p of searchParams) {
console.log(p);
}
Več enakih parametrov
Naj bo v našem nizu več enakih parametrov:
let paramsString = 'a=1&a=2b=2&c=3';
Z metodo getAll lahko dobimo
tabelo vrednosti teh parametrov:
let res = searchParams.getAll('a');
console.dir(res); // izpiše [1, 2]
Praktične naloge
Naj bo podan naslednji niz s parametri:
let paramsString = 'test1=param1&test2=param2&test3=param3';
Dodajte temu nizu še en parameter test3.
Izbrišite iz tega niza parameter test2.
Spremenite parameter test1 na novo vrednost.