Darbība ar URLSearchParams JavaScript
Kā jūs jau zināt, strādājot ar formām un GET pieprasījumiem JavaScript, rodas šāda veida virknes:
let paramsString = 'a=1&b=2&c=3';
Dažreiz ir nepieciešams programmatiski mainīt
kāda parametra vērtību no šīs virknes.
Rakstīt kodu, kas to dara, nav īpaši
ērti. Tāpēc JavaScript ir iebūvēta īpaša
klase URLSearchParams darbam ar
šādām virknēm.
Izveidosim šīs klases objektu, padodot parametrā mūsu virkni ar parametriem:
let paramsString = 'a=1&b=2&c=3';
let searchParams = new URLSearchParams(paramsString);
Apskatīsim, kādas metodes ir izveidotajam objektam.
Parametra vērtības iegūšana
Izmantojot metodi get, var iegūt
parametra vērtību:
let res = searchParams.get('a');
console.log(res);
Mēģināsim iegūt neesoša parametra vērtību:
let res = searchParams.get('x');
console.log(res); // izvadīs null
Parametra esamības pārbaude
Izmantojot metodi has, var pārbaudīt
parametra esamību. Pārbaudīsim esošu parametru:
let res = searchParams.has('a');
console.log(res); // izvadīs true
Pārbaudīsim neesošu:
let res = searchParams.has('x');
console.log(res); // izvadīs false
Pārveidošana virknē
Izmantojot metodi toString, var pārveidot
mūsu objektu atpakaļ virknē:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&b=2&c=3'
Parametru maiņa
Izmantojot metodi set, var mainīt
parametra vērtību:
searchParams.set('b', 'x');
Pārbaudīsim izmaiņas:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&b=x&c=3'
Parametru pievienošana
Izmantojot metodi set, var arī pievienot
jaunu parametru:
searchParams.set('d', '4');
Pārbaudīsim izmaiņas:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&b=2&c=3&d=4'
Parametru pievienošana
Izmantojot metodi append, var arī
pievienot jaunu parametru:
searchParams.append('d', '4');
Pārbaudīsim izmaiņas:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&b=2&c=3&d=4'
Mēģināsim pievienot jau esošu parametru:
searchParams.append('a', '4');
Šajā gadījumā mūsu metode vienkārši pievienos tāda paša nosaukuma parametru beigās:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&b=2&c=3&a=4'
Tā izpaužas atšķirība starp metodēm
set un append. Pirmais mainīs
esošo parametru, bet otrais vienkārši pievienos
tā dublikātu beigās.
Parametru dzēšana
Izmantojot metodi delete, var dzēst
parametrus:
searchParams.delete('b');
Pārbaudīsim izmaiņas:
let res = searchParams.toString();
console.log(res); // izvadīs 'a=1&c=3'
Parametru atkārtošana ar ciklu
Parametrus var atkārtot ar ciklu:
for (let p of searchParams) {
console.log(p);
}
Vairāki identiski parametri
Pieņemsim, ka mūsu virknē ir vairāki identiski parametri:
let paramsString = 'a=1&a=2b=2&c=3';
Izmantojot metodi getAll, var iegūt
šo parametru vērtību masīvu:
let res = searchParams.getAll('a');
console.dir(res); // izvadīs [1, 2]
Praktiskie uzdevumi
Pieņemsim, ka ir dota šāda virkne ar parametriem:
let paramsString = 'test1=param1&test2=param2&test3=param3';
Pievienojiet šai virknei vēl vienu parametru test3.
Izdzēsiet no šīs virknes parametru test2.
Mainiet parametru test1 uz jaunu vērtību.