ใน es6 คุณสามารถใช้เมธอด include() ของอาร์เรย์เพื่อตรวจสอบว่าอาร์เรย์มีค่าที่กำหนดหรือไม่ วิธีการนี้สามารถใช้เพื่อตรวจสอบว่าอาร์เรย์มีค่าที่กำหนดหรือไม่ ไวยากรณ์คือ "array object.includes(value) ".
สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 7, ECMAScript เวอร์ชัน 6, คอมพิวเตอร์ Dell G3
ใน ES5 นั้น Array ได้จัดให้มี indexOf เพื่อค้นหาตำแหน่งขององค์ประกอบนั้นแล้ว หากไม่มีอยู่ ก็จะส่งกลับ -1 อย่างไรก็ตาม ฟังก์ชันนี้มีข้อบกพร่องเล็กน้อยสองประการเมื่อพิจารณาว่าอาร์เรย์นั้นมีองค์ประกอบอยู่หรือไม่ 1 และตำแหน่งขององค์ประกอบใช้เพื่อระบุว่ารวมอยู่หรือไม่ ไม่มีปัญหาในแง่ของการวางตำแหน่ง แต่ยังมีความหมายไม่เพียงพอ ปัญหาอีกประการหนึ่งคือไม่สามารถระบุได้ว่ามีองค์ประกอบ NaN หรือไม่
ตัวอย่างเช่น:
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' เค' น่าน] console.log('%s', arr1.indexOf(NaN))
ผลลัพธ์:
-1
ES6 มีฟังก์ชัน Array.includes() เพื่อตรวจสอบว่าองค์ประกอบบางอย่างรวมอยู่ด้วยหรือไม่ เหนือสองปัญหาของ indexOf โดยจะส่งคืนค่าจริงหรือเท็จโดยตรงเพื่อระบุว่ามีองค์ประกอบอยู่หรือไม่ และยังมีผลกับ NaN อีกด้วย
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', น่าน] console.log('%s', arr1.includes('c')) console.log('%s', arr1.includes('z')) console.log('%s', arr1.includes(NaN))
ผลลัพธ์:
จริง เท็จ
พารามิเตอร์ตัวที่สองของ
ฟังก์ชันรวม ()จริงจะระบุตำแหน่งเริ่มต้นของการตัดสิน
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', น่าน] console.log('%s', arr1.includes('d', 1)) console.log('%s', arr1.includes('d', 3)) console.log('%s', arr1.includes('d', 4))
ผลลัพธ์:
จริง จริง false
พารามิเตอร์ตัวที่สองอาจเป็นตัวเลขลบ โดยระบุตัวเลขจากด้านขวา แต่ไม่เปลี่ยนทิศทางการค้นหา ทิศทางการค้นหายังคงจากซ้ายไปขวา
console.log('%s', arr1.includes('k', -1)) console.log('%s', arr1.includes('k', -2)) console.log('%s', arr1.includes('i', -3))
ผลลัพธ์:
false จริง
สรุป
เท็จ:
วิธีรวม () ใช้ในการตรวจสอบว่าอาร์เรย์มีค่าที่แน่นอนหรือไม่ สามารถตัดสิน NaN และส่งกลับค่าจริง/เท็จโดยตรง ซึ่งเป็นวิธีที่ง่ายกว่า
วิธี indexOf() ที่ใช้ในการค้นหาตำแหน่งขององค์ประกอบไม่สามารถทำได้ ตัดสิน NaN ส่งคืน -1 ซึ่งหมายความว่าไม่รวมอยู่ และ non-1 หมายถึงตำแหน่งที่รวมในปัจจุบัน
ทั้งสองวิธีมีข้อดีและข้อเสียแตกต่างกันไป ขึ้นอยู่กับสถานการณ์จริง หากองค์ประกอบมี NaN ให้ใช้รวม () มิฉะนั้นจะสามารถใช้ได้