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:

javascriptlet 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:

javascriptlet 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:

javascriptlet res = searchParams.get('a');
console.log(res);

Wacha tujaribu kupata thamani ya kigezo kisichopo:

javascriptlet 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:

javascriptlet res = searchParams.has('a');
console.log(res); // itatoa true

Tuangalie kise kisichopo:

javascriptlet res = searchParams.has('x');
console.log(res); // itatoa false

Kubadilisha kuwa mstari

Kwa kutumia njia toString unaweza kubadilisha kitu chetu kurudi kuwa mstari:

javascriptlet res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3'

Kubadilisha vigezo

Kwa kutumia njia set unaweza kubadilisha thamani ya kigezo:

javascriptsearchParams.set('b', 'x');

Tuangalie mabadiliko:

javascriptlet res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=x&c=3'

Kuongeza vigezo

Kwa kutumia njia set pia unaweza kuongeza kigezo kipya:

javascriptsearchParams.set('d', '4');

Tuangalie mabadiliko:

javascriptlet 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:

javascriptsearchParams.append('d', '4');

Tuangalie mabadiliko:

javascriptlet res = searchParams.toString();
console.log(res); // itatoa 'a=1&b=2&c=3&d=4'

Wacha tujaribu kuongeza kigezo kilichopo tayari:

javascriptsearchParams.append('a', '4');

Katika kesi hii, njia yetu itaongeza tu kigezo kilicho na jina moja mwishoni:

javascriptlet 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:

javascriptsearchParams.delete('b');

Tuangalie mabadiliko:

javascriptlet res = searchParams.toString();
console.log(res); // itatoa 'a=1&c=3'

Kuzungusha vigezo kwa kitanzi

Vigezo vinaweza kuzungushwa kwa kitanzi:

javascriptfor (let p of searchParams) {
  console.log(p);
}

Vigezo kadhaa vilivyo sawa

Wacha mstari wetu uwe na vigezo kadhaa vilivyo sawa:

javascriptlet paramsString = 'a=1&a=2b=2&c=3';

Kwa kutumia njia getAll unaweza kupata safu ya thamani za vigezo hivi:

javascriptlet res = searchParams.getAll('a');
console.dir(res); // itatoa [1, 2]

Kazi za vitendo

Wacha iwe na mstari ufuatao wa vigezo:

javascriptlet paramsString = 'test1=param1&test2=param2&test3=param3';
Задание 1

Ongeza kigezo kingine test3 kwenye mstari huu.

Задание 2

Futa kigezo test2 kutoka kwenye mstari huu.

Задание 3

Badilisha kigezo test1 kuwa na thamani mpya.