Kufanya kazi na URLSearchParams katika JavaScript
Kama unavyojua tayari, wakati wa kufanya kazi na fomu na maombi ya GET katika JavaScript, mistiri ya hali hii hutokea:
let paramsString = 'a=1&b=2&c=3';
Wakati mwingine inahitajika kubadilisha kwa programu
thamani ya kigezo fulani kutoka kwa mstari huu.
Kuandika msimbo unaofanya hivyo, sio
rahisi sana. Kwa hivyo, JavaScript ina darasa maalum
URLSearchParams la kufanya kazi na
mistiri kama hii.
Wacha tuunde kitu cha darasa hili, tukipitisha kigezo mstari wetu wa vigezo:
let paramsString = 'a=1&b=2&c=3';
let searchParams = new URLSearchParams(paramsString);
Wacha tuone, ni njia gani zipo kwa kitu kilichoundwa.
Kupata thamani ya kigezo
Kwa kutumia njia get unaweza kupata
thamani ya kigezo:
let res = searchParams.get('a');
console.log(res);
Wacha tujaribu kupata thamani ya kigezo kisichopo:
let res = searchParams.get('x');
console.log(res); // itatoa null
Kuangalia uwepo wa kigezo
Kwa kutumia njia has unaweza kuangalia
uwepo wa kigezo. Tuangalie kigezo kilichopo:
let res = searchParams.has('a');
console.log(res); // itatoa true
Tuangalie kise kisichopo:
let res = searchParams.has('x');
console.log(res); // itatoa false
Kubadilisha kuwa mstari
Kwa kutumia njia toString unaweza kubadilisha
kitu chetu kurudi kuwa mstari:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3'
Kubadilisha vigezo
Kwa kutumia njia set unaweza kubadilisha
thamani ya kigezo:
searchParams.set('b', 'x');
Tuangalie mabadiliko:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=x&c=3'
Kuongeza vigezo
Kwa kutumia njia set pia unaweza kuongeza
kigezo kipya:
searchParams.set('d', '4');
Tuangalie mabadiliko:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3&d=4'
Kuongeza vigezo
Kwa kutumia njia append pia unaweza
kuongeza kigezo kipya:
searchParams.append('d', '4');
Tuangalie mabadiliko:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3&d=4'
Wacha tujaribu kuongeza kigezo kilichopo tayari:
searchParams.append('a', '4');
Katika kesi hii, njia yetu itaongeza tu kigezo kilicho na jina moja mwishoni:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3&a=4'
Hii ndio tofauti inayoonekana kati ya njia
set na append. Ya kwanza itabadilisha
kigezo kilichopo, wakati ya pili itaongeza tu
nakala yake mwishoni.
Kufuta vigezo
Kwa kutumia njia delete unaweza kufuta
vigezo:
searchParams.delete('b');
Tuangalie mabadiliko:
let res = searchParams.toString();
console.log(res); // itatoa 'a=1&c=3'
Kuzungusha vigezo kwa kitanzi
Vigezo vinaweza kuzungushwa kwa kitanzi:
for (let p of searchParams) {
console.log(p);
}
Vigezo kadhaa vilivyo sawa
Wacha mstari wetu uwe na vigezo kadhaa vilivyo sawa:
let paramsString = 'a=1&a=2b=2&c=3';
Kwa kutumia njia getAll unaweza kupata
safu ya thamani za vigezo hivi:
let res = searchParams.getAll('a');
console.dir(res); // itatoa [1, 2]
Kazi za vitendo
Wacha iwe na mstari ufuatao wa vigezo:
let paramsString = 'test1=param1&test2=param2&test3=param3';
Ongeza kigezo kingine test3 kwenye mstari huu.
Futa kigezo test2 kutoka kwenye mstari huu.
Badilisha kigezo test1 kuwa na thamani mpya.