วิธี indexOf

วิธี indexOf ดำเนินการค้นหาองค์ประกอบ ในอาร์เรย์ ในพารามิเตอร์แรก ให้ระบุองค์ประกอบที่ต้องการค้นหา วิธีนี้จะส่งคืนตำแหน่งดัชนีขององค์ประกอบที่พบเจอครั้งแรก, หรือ -1 หากไม่มีองค์ประกอบดังกล่าว พารามิเตอร์ที่สองของวิธีซึ่งไม่จำเป็น กำหนดตำแหน่งเริ่มต้นสำหรับการค้นหา

ไวยากรณ์

javascriptอาร์เรย์.indexOf(องค์ประกอบ, [ตำแหน่งเริ่มต้น]);

ตัวอย่าง

ลองหาตำแหน่งของเลข 3 ตัวแรกในอาร์เรย์:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

ผลลัพธ์จากการรันโค้ด:

javascript2

ตัวอย่าง

คราวนี้สมมติว่าองค์ประกอบที่ตรวจสอบไม่มีในอาร์เรย์:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

ผลลัพธ์จากการรันโค้ด:

javascript-1

ตัวอย่าง

เริ่มค้นหาจากตำแหน่งที่กำหนด:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

ผลลัพธ์จากการรันโค้ด:

javascript5

ข้อผิดพลาดที่พบบ่อย

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

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

การตรวจสอบแบบนี้จะใช้งานได้ กับทุกตำแหน่ง ยกเว้นตำแหน่งที่ 0 - เพราะ ตำแหน่งนั้นถูกตีความเป็น false

วิธีที่ถูกต้องในการตรวจสอบการมีอยู่ขององค์ประกอบ คือทำดังต่อไปนี้:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

ดูเพิ่มเติม

  • วิธี includes,
    ซึ่งตรวจสอบการมีอยู่ขององค์ประกอบในอาร์เรย์
  • วิธี lastIndexOf,
    ซึ่งค้นหาองค์ประกอบจากท้ายอาร์เรย์
  • วิธี at,
    ซึ่งส่งคืนองค์ประกอบของอาร์เรย์ตามดัชนีของมัน
  • วิธี match,
    ซึ่งค้นหาความสอดคล้องในสตริง
  • วิธี search,
    ซึ่งดำเนินการค้นหา