⊗jsSpHPUSP 222 of 294 menu

การทำงานกับ URLSearchParams ใน JavaScript

ดังที่คุณทราบอยู่แล้ว เมื่อทำงานกับแบบฟอร์มและ คำขอ GET ใน JavaScript จะเกิดสตริง ในรูปแบบนี้:

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 เป็นค่าใหม่

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ