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