Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฉันจะค้นหาผ่านอาร์เรย์โดยใช้สตริงที่แยกออกเป็นอาร์เรย์ด้วย JavaScript ได้อย่างไร


เราได้รับอาร์เรย์ของสตริงและสตริงอื่นที่เราจำเป็นต้องค้นหาในอาร์เรย์ เราสามารถกรองอาร์เรย์ตรวจสอบว่ามีอักขระทั้งหมดที่ผู้ใช้ระบุผ่านอินพุตหรือไม่

รหัสสำหรับทำเช่นเดียวกันคือ −

ตัวอย่าง

โซลูชันที่ 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);

ผลลัพธ์

เอาต์พุตในคอนโซล −

["14/02/2020, 11:47,G12, Kalkaji"]

ในอีกแนวทางหนึ่งที่ดีกว่าเล็กน้อย เราสามารถลบขั้นตอนการแยกอินพุตดังที่แสดงด้านล่าง −

ตัวอย่าง

โซลูชันที่ 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);

แต่ในขณะที่ใช้วิธีที่สองนี้ เราต้องจำไว้ว่ามันเป็นลำดับที่ละเอียดอ่อนหมายความว่า AB จะจับคู่กับ ab หรือ Ab แต่ไม่จับคู่กับ BA หรือ ba

เอาต์พุตในคอนโซล −

ผลลัพธ์

["14/02/2020, 11:47,G12, Kalkaji"]