เรามีอาร์เรย์สตริง และอีกสตริงหนึ่งสำหรับค้นหา สามารถ Filter อาร์เรย์โดยตรวจสอบว่ามีตัวอักษรทั้งหมดที่ผู้ใช้ให้มาหรือไม่
โค้ดสำหรับทำเช่นนี้ −
ตัวอย่าง
วิธีที่ 1
const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48, A59, Amar Colony"]; const input = "g12, kal"; const pn = input.split(" "); const requiredDeliveries = deliveries.filter(delivery => pn.every(p => delivery.toLowerCase() .includes(p.toLowerCase()))); console.log(requiredDeliveries);ผลลัพธ์
ผลลัพธ์ใน Console −
["14/02/2020, 11:47,G12, Kalkaji"]
อีกวิธีที่ดีกว่า คือไม่ต้อง Split Input ดังด้านล่าง −
ตัวอย่าง
วิธีที่ 2
const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48, A59, Amar Colony"]; const input = "g12, kal"; const requiredDeliveries = deliveries .filter(delivery => delivery.toLowerCase() .includes(input.toLowerCase())); console.log(requiredDeliveries);
แต่วิธีที่ 2 นี้คำนึงถึงลำดับตัวอักษร (Sequence Sensitive) คือ AB จะ match กับ ab หรือ Ab แต่ไม่ match กับ BA หรือ ba
ผลลัพธ์ใน Console −
ผลลัพธ์
["14/02/2020, 11:47,G12, Kalkaji"]