วิธี indexOf
วิธี indexOf ดำเนินการค้นหาองค์ประกอบ
ในอาร์เรย์ ในพารามิเตอร์แรก
ให้ระบุองค์ประกอบที่ต้องการค้นหา
วิธีนี้จะส่งคืนตำแหน่งดัชนีขององค์ประกอบที่พบเจอครั้งแรก,
หรือ -1 หากไม่มีองค์ประกอบดังกล่าว
พารามิเตอร์ที่สองของวิธีซึ่งไม่จำเป็น
กำหนดตำแหน่งเริ่มต้นสำหรับการค้นหา
ไวยากรณ์
อาร์เรย์.indexOf(องค์ประกอบ, [ตำแหน่งเริ่มต้น]);
ตัวอย่าง
ลองหาตำแหน่งของเลข 3 ตัวแรกในอาร์เรย์:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
ผลลัพธ์จากการรันโค้ด:
2
ตัวอย่าง
คราวนี้สมมติว่าองค์ประกอบที่ตรวจสอบไม่มีในอาร์เรย์:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
ผลลัพธ์จากการรันโค้ด:
-1
ตัวอย่าง
เริ่มค้นหาจากตำแหน่งที่กำหนด:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
ผลลัพธ์จากการรันโค้ด:
5
ข้อผิดพลาดที่พบบ่อย
บางครั้งมีการใช้วิธีนี้เพื่อตรวจสอบ การมีอยู่ขององค์ประกอบในอาร์เรย์ ในกรณีนี้ อาจเกิดข้อผิดพลาดได้ง่ายหาก ทำการตรวจสอบด้วยวิธีต่อไปนี้
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
การตรวจสอบแบบนี้จะใช้งานได้
กับทุกตำแหน่ง ยกเว้นตำแหน่งที่ 0 - เพราะ
ตำแหน่งนั้นถูกตีความเป็น false
วิธีที่ถูกต้องในการตรวจสอบการมีอยู่ขององค์ประกอบ คือทำดังต่อไปนี้:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
ดูเพิ่มเติม
-
วิธี
includes,
ซึ่งตรวจสอบการมีอยู่ขององค์ประกอบในอาร์เรย์ -
วิธี
lastIndexOf,
ซึ่งค้นหาองค์ประกอบจากท้ายอาร์เรย์ -
วิธี
at,
ซึ่งส่งคืนองค์ประกอบของอาร์เรย์ตามดัชนีของมัน -
วิธี
match,
ซึ่งค้นหาความสอดคล้องในสตริง -
วิธี
search,
ซึ่งดำเนินการค้นหา