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

การค้นหาองค์ประกอบใน Javascript Array


Javascript มีชุดของฟังก์ชันที่คุณสามารถใช้เพื่อค้นหาองค์ประกอบในอาร์เรย์ เริ่มจากพื้นฐานที่สุดกันก่อน ฟังก์ชัน indexOf ทำงานผ่านอาร์เรย์ทั้งหมดและส่งคืนดัชนีขององค์ประกอบที่คุณค้นหา หากพบอย่างอื่น ฟังก์ชันจะคืนค่า -1 ตัวอย่างเช่น

ตัวอย่าง

let people = ["Harry", "Martha", "John", "Sam"];
console.log(people.indexOf("John"))
console.log(people.indexOf("Jim"))

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

2
-1

มีฟังก์ชันอื่นๆ ที่ซับซ้อนกว่าที่คุณสามารถใช้เพื่อทำให้การค้นหามีประสิทธิภาพมากขึ้น มาดูวิธี find() กัน เมธอด find() จะคืนค่าอ็อบเจ็กต์แรกที่ตรงกับเงื่อนไขที่คุณระบุเป็นเมธอด callback() ตัวอย่างเช่น

ตัวอย่าง

let people = [{
   name: 'Agnes',
   age: 25
}, {
   name: 'Richard',
   age: 21
}, {
   name: 'Zoe',
   age: 35
}];
let personNameStartsWithR = people.find(person => person.name[0] === 'R');
console.log(personNameStartsWithR)

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

{ name: 'Richard', age: 21 }

แต่ผลลัพธ์ข้างต้นทำให้เรามีวัตถุ เราสามารถค้นหาดัชนีของวัตถุนี้โดยใช้ฟังก์ชัน findIndex ตัวอย่างเช่น

ตัวอย่าง

let people = [{
   name: 'Agnes',
   age: 25
}, {
   name: 'Richard',
   age: 21
}, {
   name: 'Zoe',
   age: 35
}];
let personNameStartsWithR = people.findIndex(person => person.name[0] === 'R');
console.log(personNameStartsWithR)

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

1

โปรดทราบว่าฟังก์ชัน find() และ findindex() รับการเรียกกลับเป็นอาร์กิวเมนต์ และการเรียกกลับรับอาร์กิวเมนต์:องค์ประกอบ ดัชนี อาร์เรย์ ฟังก์ชันเหล่านี้ให้การเกิดขึ้นครั้งแรกขององค์ประกอบเท่านั้น ฟังก์ชัน indexOf ยังรับพารามิเตอร์อื่น fromIndex เพื่อให้คุณสามารถค้นหาต่อจากจุดนั้นเป็นต้นไป ตัวอย่างเช่น

ตัวอย่าง

let people = ["Harry", "Martha", "John", "Sam", "Martha"];
console.log(people.indexOf("Martha"));
console.log(people.indexOf("Martha", 3))

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

1
4