JavaScript-de URLSearchParams bilen işleşiş

Bilşiňiz ýaly, JavaScript-de formularlar we GET haýyşlary bilen işleşilende, şuňa meňzeş setirler ýüze çykýar:

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

Beýle bir setirdäki parametriň bahasyny programma ýollary üýtgetmek gerek bolup biler. Muny amala aşyrmak üçin kod ýazmak amatly däl. Şonuň üçin JavaScript-de beýle setirler bilen işlemek üçin URLSearchParams atly aýratyn klas döredildi.

Geliň, bu klassyň nobadyny döredip, parametr hökmünde bizim parametrli setirimizi bereliň:

javascriptlet paramsString = 'a=1&b=2&c=3';
let searchParams = new URLSearchParams(paramsString);

Geliň, döredilen nobadyň haýsy usullary bar bolsa, göreliň.

Parametriň bahasyny almak

get usuly bilen parametriň bahasyny alyp bolýar:

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

Indi bolsa ýok parametriň bahasyny almaga synanyşalyň:

javascriptlet res = searchParams.get('x');
console.log(res); // null görkezer

Parametriň bardygyny barlamak

has usuly bilen parametriň bardygyny barlap bolýar. Bar bolan parametri barlaýalyň:

javascriptlet res = searchParams.has('a');
console.log(res); // true görkezer

Ýok bolan parametri barlaýalyň:

javascriptlet res = searchParams.has('x');
console.log(res); // false görkezer

Setre öwürmek

toString usuly bilen nobadymyzy ýene-de setre öwürip bolýar:

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

Parametrleri üýtgetmek

set usuly bilen parametriň bahasyny üýtgedip bolýar:

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

Üýtgeşmegi barlaýalyň:

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

Täze parametr goşmak

set usuly bilem täze parametr hem goşup bolýar:

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

Üýtgeşmegi barlaýalyň:

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

Parametr goşmak

append usuly bilem täze parametr goşup bolýar:

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

Üýtgeşmegi barlaýalyň:

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

Indi bolsa bar bolan parametri goşmaga synanyşalyň:

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

Bu ýagdaýda bu usul, diňe şol atly parametri soňuna goşar:

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

set we append usullarynyň arasyndaky tapawut şu ýerde görünýär. Birinji bar bolan parametri üýtgedýär, ikinjisi bolsa onuň nusgasyny soňuna goşýar.

Parametrleri aýyrmak

delete usuly bilen parametrleri aýyryp bolýar:

javascriptsearchParams.delete('b');

Üýtgeşmegi barlaýalyň:

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

Parametrleri aýlaw bilen geçmek

Parametrleri aýlaw bilen geçip bolýar:

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

Birnäçe şol bir parametr

Bizim setirimizde birnäçe şol bir atly parametr bardyr diýeliň:

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

getAll usuly bilen bu parametrleriň bahalarynyň sanawyny alyp bolýar:

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

Amaly wezîpeler

Bizde parametrli aşakdaky setir bardyr diýeliň:

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

Bu setire test3 atly ýene bir parametr goşuň.

Задание 2

Bu setirden test2 atly parametri aýyryň.

Задание 3

test1 atly parametri täze baha üýtgediň.