जावास्क्रिप्ट में URLSearchParams के साथ काम करना

जैसा कि आप पहले से ही जानते हैं, जावास्क्रिप्ट में फॉर्म और GET अनुरोधों के साथ काम करते समय इस प्रकार की स्ट्रिंग्स उत्पन्न होती हैं:

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

कभी-कभी इस स्ट्रिंग से किसी पैरामीटर का मान प्रोग्रामेटिक तरीके से बदलने की आवश्यकता होती है। ऐसा कोड लिखना जो यह करता है, बहुत सुविधाजनक नहीं है। इसलिए जावास्क्रिप्ट में ऐसी स्ट्रिंग्स के साथ काम करने के लिए एक विशेष वर्ग URLSearchParams अंतर्निहित है।

आइए इस वर्ग की एक वस्तु बनाएं, हमारी पैरामीटर स्ट्रिंग को पैरामीटर के रूप में पास करके:

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

आइए देखें कि बनाई गई वस्तु में कौन-कौन से तरीके हैं।

पैरामीटर का मान प्राप्त करना

get विधि का उपयोग करके पैरामीटर का मान प्राप्त किया जा सकता है:

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

आइए एक गैर-मौजूद पैरामीटर का मान प्राप्त करने का प्रयास करें:

javascriptlet res = searchParams.get('x');
console.log(res); // null प्रिंट करेगा

पैरामीटर की उपस्थिति की जाँच

has विधि का उपयोग करके पैरामीटर की उपस्थिति की जाँच की जा सकती है। आइए एक मौजूदा पैरामीटर की जाँच करें:

javascriptlet res = searchParams.has('a');
console.log(res); // true प्रिंट करेगा

आइए एक गैर-मौजूद पैरामीटर की जाँच करें:

javascriptlet res = searchParams.has('x');
console.log(res); // false प्रिंट करेगा

स्ट्रिंग में रूपांतरण

toString विधि का उपयोग करके हमारी वस्तु को वापस स्ट्रिंग में बदला जा सकता है:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3' प्रिंट करेगा

पैरामीटर बदलना

set विधि का उपयोग करके पैरामीटर का मान बदला जा सकता है:

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

आइए परिवर्तनों की जाँच करें:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&b=x&c=3' प्रिंट करेगा

पैरामीटर जोड़ना

set विधि का उपयोग करके एक नया पैरामीटर भी जोड़ा जा सकता है:

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

आइए परिवर्तनों की जाँच करें:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&d=4' प्रिंट करेगा

पैरामीटर जोड़ना

append विधि का उपयोग करके भी एक नया पैरामीटर जोड़ा जा सकता है:

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

आइए परिवर्तनों की जाँच करें:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&d=4' प्रिंट करेगा

आइए एक मौजूदा पैरामीटर को जोड़ने का प्रयास करें:

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

इस मामले में हमारी विधि समान नाम का एक पैरामीटर अंत में जोड़ देगी:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&b=2&c=3&a=4' प्रिंट करेगा

इसमें set और append विधियों के बीच अंतर प्रकट होता है। पहली मौजूदा पैरामीटर को बदल देगी, और दूसरी उसकी प्रति को अंत में जोड़ देगी।

पैरामीटर हटाना

delete विधि का उपयोग करके पैरामीटर हटाए जा सकते हैं:

javascriptsearchParams.delete('b');

आइए परिवर्तनों की जाँच करें:

javascriptlet res = searchParams.toString();
console.log(res); // 'a=1&c=3' प्रिंट करेगा

लूप के साथ पैरामीटरों का पुनरावृत्ति

पैरामीटरों को लूप के साथ पुनरावृत्त किया जा सकता है:

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

कई समान पैरामीटर

मान लीजिए कि हमारी स्ट्रिंग में कई समान पैरामीटर हैं:

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

getAll विधि का उपयोग करके इन पैरामीटरों के मानों की एक सरणी प्राप्त की जा सकती है:

javascriptlet res = searchParams.getAll('a');
console.dir(res); // [1, 2] प्रिंट करेगा

व्यावहारिक कार्य

मान लीजिए कि निम्नलिखित पैरामीटर स्ट्रिंग दी गई है:

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

इस स्ट्रिंग में एक और पैरामीटर test3 जोड़ें।

Задание 2

इस स्ट्रिंग से पैरामीटर test2 हटाएं।

Задание 3

पैरामीटर test1 को एक नए मान में बदलें।