JavaScript да URLSearchParams билан ишлаш
Сизга маълумки, JavaScript да формалар ва GET сўровлари билан ишлаганда куйидаги кўринишдаги сатрлар пайдо булади:
let paramsString = 'a=1&b=2&c=3';
Базан ушбу сатрдан бирон параметрнинг қийматини
дастурли равишда ўзгартириш керак булади.
Буни амалга оширадиган код ёзиш жуда қулай
эмас. Шу сабабли JavaScript да ушбу хил сатрлар
билан ишлаш учун махсус URLSearchParams синфи мавжуд.
Келинг, ушбу синфнинг объектини яратиб, параметрлар сатримизни унга параметр сифатида ўтамиз:
let paramsString = 'a=1&b=2&c=3';
let searchParams = new URLSearchParams(paramsString);
Келинг, яратилган объектда қандай методлар борлигини кўриб чиқайлик.
Параметр қийматини олиш
get метода ёрдамида параметрнинг
қийматини олиш мумкин:
let res = searchParams.get('a');
console.log(res);
Энди мавжуд бўлмаган параметрнинг қийматини олиб кўрайлик:
let res = searchParams.get('x');
console.log(res); // null чикади
Параметр мавжудлигини текшириш
has метода ёрдамида параметрнинг
мавжудлигини текшириш мумкин. Мавжуд параметрни текширайлик:
let res = searchParams.has('a');
console.log(res); // true чикади
Мавжуд бўлмаган параметрни текширайлик:
let res = searchParams.has('x');
console.log(res); // false чикади
Сатрга айлантириш
toString метода ёрдамида бизнинг
объектимизни яна сатрга айлантириш мумкин:
let res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3' чикади
Параметрларни ўзгартириш
set метода ёрдамида параметрнинг
қийматини ўзгартириш мумкин:
searchParams.set('b', 'x');
Ўзгаришларни текширайлик:
let res = searchParams.toString();
console.log(res); // 'a=1&b=x&c=3' чикади
Параметрлар қўшиш
set метода ёрдамида янгі параметр
қўшиш ҳам мумкин:
searchParams.set('d', '4');
Ўзгаришларни текширайлик:
let res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&d=4' чикади
Параметрлар қўшиш
append метода ёрдамида ҳам янгі
параметр қўшиш мумкин:
searchParams.append('d', '4');
Ўзгаришларни текширайлик:
let res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&d=4' чикади
Келинг, аллақачон мавжуд бўлган параметрни қўшиб кўрайлик:
searchParams.append('a', '4');
Бунда бизнинг методимиз шу номли параметрни охирига қўшиб қўяди:
let res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&a=4' чикади
Бу ерда set ва append методлари
орасидаги фарқ намоён булади. Биринчиси мавжуд
параметрни ўзгартиради, иккинчиси эса унинг
дубликатини охирига қўшиб қўяди.
Параметрларни ўчириш
delete метода ёрдамида параметрларни
ўчириш мумкин:
searchParams.delete('b');
Ўзгаришларни текширайлик:
let res = searchParams.toString();
console.log(res); // 'a=1&c=3' чикади
Параметрларни сикл билан айланиш
Параметрларни сикл билан айланиб чиқиш мумкин:
for (let p of searchParams) {
console.log(p);
}
Бир нечта бир хил параметрлар
Бизнинг сатримизда бир нечта бир хил параметрлар мавжуд дейлик:
let paramsString = 'a=1&a=2b=2&c=3';
getAll метода ёрдамида ушбу параметрларнинг
қийматлари массивини олиш мумкин:
let res = searchParams.getAll('a');
console.dir(res); // [1, 2] чикади
Амалий вазифалар
Куйидаги параметрлар сатри берилган дейлик:
let paramsString = 'test1=param1&test2=param2&test3=param3';
Ушбу сатрга яна бир test3 параметрини қўшинг.
Ушбу сатрдан test2 параметрини ўчиринг.
test1 параметрини янгі қийматга ўзгартиринг.