การค้นหาแบบเรียง JavaScript

วิธีค้นหาและการค้นหาใน array

ดูเพิ่มเติม:

JavaScript Array indexOf()

indexOf() วิธีนี้ค้นหาค่าขององค์ประกอบใน array และกลับมาแสดงตำแหน่งของมัน

จำเป็นตำแหน่งขององค์ประกอบแรกคือ 0 ตำแหน่งขององค์ประกอบที่สองคือ 1 และอื่นๆ ตามลำดับ

ʵ

ค้นหาองค์ประกอบ "Apple" ใน array:

const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.indexOf("Apple") + 1;

ʵ

การใช้งาน

array.indexOf(item, start)
item จำเป็น. สิ่งที่ต้องการค้นหา
start เลือกตั้งได้. ตำแหน่งที่เริ่มค้นหา. หากมีค่าลบ จะเริ่มนับจากด้านหลังของ array และค้นหาไปจนถึงท้าย

ค่าที่กลับมา:

  • หากไม่พบองค์ประกอบ ก็จะกลับมาแสดง -1
  • หากองค์ประกอบปรากฏขึ้นหลายครั้ง ก็จะกลับมาแสดงตำแหน่งที่ปรากฏขึ้นครั้งแรก

JavaScript Array lastIndexOf()

lastIndexOf() วิธีเดียวกันกับ indexOf() เหมือนกัน แต่กลับมาแสดงตำแหน่งที่องค์ประกอบนี้ปรากฏขึ้นครั้งสุดท้าย

ʵ

ค้นหาองค์ประกอบ "Apple" ใน array:

const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.lastIndexOf("Apple") + 1;

ʵ

การใช้งาน

array.lastIndexOf(item, start)
item จำเป็น. สิ่งที่ต้องการค้นหา
start เลือกตั้งได้. ตำแหน่งที่เริ่มค้นหา. หากมีค่าลบ จะเริ่มนับจากด้านหลังของ array และค้นหาไปจนถึงต้น

JavaScript Array includes()

ECMAScript 2016 ได้นำเสนอ Array.includes() วิธีนี้ มีสภาพความสามารถที่อนุญาตให้เราตรวจสอบว่ามีอิทธิพลในตัวแปร array หรือไม่ (รวมถึง NaN ซึ่งต่างจาก indexOf)

ʵ

const ผลไม้ = ["Banana", "Orange", "Apple", "Mango"];
fruits.includes("Mango"); // ส่งค่า true

ʵ

การใช้งาน

array.includes(search-item)

search-itemเพื่อค้นหาองค์ประกอบ

จำเป็นincludes() สามารถตรวจสอบค่า NaN และ indexOf() ไม่สามารถ

˹

includes() เป็น ECMAScript 2016 คุณสมบัติ

ตั้งแต่มีนาคม 2017 ปี ทุกบราวเซอร์ที่สมัยใหม่ทุกตัวเข้าถึง ES2016:

Chrome Edge Firefox Safari Opera
Chrome 52 Edge 15 Firefox 52 Safari 10.1 Opera 39
กรกฎาคม 2016 ปี เมษายน 2017 ปี มีนาคม 2017 ปี พฤษภาคม 2017 ปี กรกฎาคม 2016 ปี

Internet Explorer ไม่สนับสนุน includes()

JavaScript Array find()

find() วิธีนี้ส่งค่าองค์ประกอบแรกที่ผ่านทางการทดสอบฟังก์ชัน

ʵ

ค้นหาองค์ประกอบแรกที่มากกว่า 18:

const numbers = [4, 9, 16, 25, 29];
let first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

ʵ

จำเป็นฟังก์ชันรับ 3 ตัวอักษร

  • ค่าองค์ประกอบ
  • ดัชนีองค์ประกอบ
  • ตัวแปรแถว

˹

find() เป็นคุณสมบัติของ ES6 (JavaScript 2015)

ตั้งแต่มิถุนายน 2017 ปี ทุกบราวเซอร์ที่สมัยใหม่ทุกตัวเข้าถึง ES6:

Chrome Edge Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
พฤษภาคม 2016 ปี เมษายน 2017 ปี มิถุนายน 2017 ปี กันยายน 2016 ปี มิถุนายน 2016 ปี

Internet Explorer ไม่สนับสนุน find().

JavaScript Array findIndex()

findIndex() วิธีนี้ส่งค่าดัชนีขององค์ประกอบแรกที่ผ่านทางการทดสอบฟังก์ชัน

ʵ

ค้นหาดัชนีขององค์ประกอบแรกที่มากกว่า 18:

const numbers = [4, 9, 16, 25, 29];
let first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

ʵ

จำเป็นฟังก์ชันรับ 3 ตัวอักษร

  • ค่าองค์ประกอบ
  • ดัชนีองค์ประกอบ
  • ตัวแปรแถว

˹

findIndex() เป็นคุณสมบัติของ ES6 (JavaScript 2015)

ตั้งแต่มิถุนายน 2017 ปี ทุกบราวเซอร์ที่สมัยใหม่ทุกตัวเข้าถึง ES6:

Chrome Edge Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
พฤษภาคม 2016 ปี เมษายน 2017 ปี มิถุนายน 2017 ปี กันยายน 2016 ปี มิถุนายน 2016 ปี

Internet Explorer ไม่สนับสนุน findIndex().

JavaScript Array findLast()

ES2023 ได้เพิ่มขึ้น findLast() วิธีที่มีการค้นหาจากทางด้านหลังของตัวแปรและส่งค่าขององค์ประกอบที่สอดคล้องเรียกว่าค่าแรก

ʵ

const temp = [27, 28, 30, 40, 42, 35, 30];
let สูง = temp.findLast(x => x > 40);

ʵ

˹

findLast() ES2023

2023 7 ʼáȫ˹

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
2023 2 2023 2 2023 7 2023 3 2023 5

JavaScript Array findLastIndex()

findLastIndex() ҵָʽһ

ʵ

const temp = [27, 28, 30, 40, 42, 35, 30];
let pos = temp.findLastIndex(x => x > 40);

ʵ

˹

findLastIndex() ES2023

2023 7 ʼáȫ˹

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
2023 2 2023 2 2023 7 2023 3 2023 5

ȫбȺʾ

ҪȫбȺʵʣJavaScript ʾ.

øʾиȫбȺʵ