Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ค้นหาสมาชิกในอาร์เรย์ JavaScript: indexOf, find, findIndex


JavaScript มีฟังก์ชันสำหรับค้นหาสมาชิกในอาร์เรย์ เริ่มจากพื้นฐาน indexOf วนทั้งอาร์เรย์คืนดัชนีถ้าพบ ไม่พบคืน -1 ตัวอย่าง:

ตัวอย่าง

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

ผลลัพธ์

จะได้ผลลัพธ์:

2 -1

ฟังก์ชันซับซ้อนกว่า 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 personNameStartsWithR = people.findIndex(person => person.name[0] === 'R'); 
console.log(personNameStartsWithR)

ผลลัพธ์

จะได้ผลลัพธ์:

1

indexOf รับพารามิเตอร์ fromIndex เพื่อค้นหาต่อจากตำแหน่งนั้น ตัวอย่าง:

ตัวอย่าง

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

ผลลัพธ์

จะได้ผลลัพธ์:

1 4