जावास्क्रिप्ट में URLSearchParams के साथ काम करना
जैसा कि आप पहले से ही जानते हैं, जावास्क्रिप्ट में फॉर्म और GET अनुरोधों के साथ काम करते समय इस प्रकार की स्ट्रिंग्स उत्पन्न होती हैं:
let paramsString = 'a=1&b=2&c=3';
कभी-कभी इस स्ट्रिंग से किसी पैरामीटर का मान प्रोग्रामेटिक तरीके से बदलने
की आवश्यकता होती है। ऐसा कोड लिखना जो यह करता है, बहुत
सुविधाजनक नहीं है। इसलिए जावास्क्रिप्ट में ऐसी स्ट्रिंग्स के साथ काम करने के लिए
एक विशेष वर्ग 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 को एक नए मान में बदलें।