บางวิธีด้านล่างสำหรับสถานการณ์ที่แตกต่างกัน
ในกรณีปกติส่วนใหญ่วิธีที่ง่ายที่สุดในการเข้าถึงองค์ประกอบแรกคือโดย
yourArray[0]
แต่สิ่งนี้ต้องการให้คุณตรวจสอบว่ามีจริง [0] อยู่หรือไม่
มีกรณีในโลกแห่งความจริงที่คุณไม่สนใจเกี่ยวกับอาเรย์ดั้งเดิมและไม่ต้องการตรวจสอบว่ามีดัชนีอยู่หรือไม่คุณต้องการเพียงแค่รับองค์ประกอบแรกหรืออินไลน์ที่ไม่ได้กำหนด
ในกรณีนี้คุณสามารถใช้shift ()วิธีการรับองค์ประกอบแรก แต่ต้องระมัดระวังว่าวิธีนี้จะปรับเปลี่ยนอาร์เรย์เดิม (ลบรายการแรกและส่งกลับ) ดังนั้นความยาวของอาร์เรย์จึงลดลงหนึ่งรายการ วิธีนี้สามารถใช้ในกรณีแบบอินไลน์ที่คุณเพียงแค่ต้องได้รับองค์ประกอบแรก แต่คุณไม่สนใจเกี่ยวกับอาร์เรย์เดิม
yourArray.shift()
สิ่งสำคัญที่ควรทราบคือทั้งสองข้างต้นเป็นเพียงตัวเลือกถ้าอาร์เรย์ของคุณเริ่มต้นด้วยดัชนี [0]
มีหลายกรณีที่องค์ประกอบแรกถูกลบออกตัวอย่างเช่นลบ yourArray [0] โดยปล่อยให้อาร์เรย์ของคุณมี "หลุม" ตอนนี้องค์ประกอบที่ [0] ไม่ได้ถูกกำหนด แต่คุณต้องการรับองค์ประกอบ "ที่มีอยู่" เป็นครั้งแรก ฉันได้เห็นกรณีของโลกแห่งความเป็นจริงมากมาย
ดังนั้นสมมติว่าเราไม่มีความรู้เกี่ยวกับอาเรย์และคีย์แรก (หรือเรารู้ว่ามีรู) เรายังสามารถรับองค์ประกอบแรกได้
คุณสามารถใช้find ()เพื่อรับองค์ประกอบแรก
ข้อดีของ find () คือประสิทธิภาพเมื่อออกจากลูปเมื่อค่าแรกเป็นไปตามเงื่อนไข (เพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง) (คุณสามารถกำหนดเงื่อนไขเพื่อแยกค่า Null หรือค่าว่างอื่น ๆ ด้วย)
var firstItem = yourArray.find(x=>x!==undefined);
ฉันต้องการรวมตัวกรอง ()ที่นี่เป็นตัวเลือกในการ "แก้ไข" อาเรย์แรกในการคัดลอกแล้วรับองค์ประกอบแรกในขณะที่รักษาอาเรย์เดิมที่ไม่เปลี่ยนแปลง (ไม่แก้ไข)
อีกเหตุผลที่จะรวม filter () ที่นี่ก็คือมันมีอยู่ก่อน find () และโปรแกรมเมอร์จำนวนมากได้ใช้ไปแล้ว (เป็น ES5 เทียบกับ find () เป็น ES6)
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
คำเตือนว่าตัวกรอง () ไม่ใช่วิธีที่มีประสิทธิภาพ (ตัวกรอง () ไหลผ่านองค์ประกอบทั้งหมด) และสร้างอาร์เรย์อื่น มันเป็นเรื่องดีที่จะใช้กับอาร์เรย์ขนาดเล็กเนื่องจากผลกระทบต่อประสิทธิภาพจะต่ำกว่าใกล้กับการใช้ forEach ตัวอย่างเช่น
(ฉันเห็นบางคนแนะนำให้ใช้สำหรับ ... ในลูปเพื่อรับองค์ประกอบแรก แต่ฉันอยากจะแนะนำกับวิธีนี้สำหรับ ... ในไม่ควรใช้เพื่อทำซ้ำในอาร์เรย์ที่ลำดับดัชนีมีความสำคัญเพราะมันไม่ได้ ' ไม่รับประกันการสั่งซื้อแม้ว่าคุณจะสามารถโต้แย้งได้ว่าเบราว์เซอร์ส่วนใหญ่เคารพคำสั่งซื้อ แต่สำหรับแต่ละไม่ได้แก้ปัญหาเป็นจำนวนมากแนะนำเพราะคุณไม่สามารถทำลายมันและมันจะทำงานผ่านองค์ประกอบทั้งหมดคุณจะดีกว่าการใช้ง่ายสำหรับ วนรอบและโดยการตรวจสอบคีย์ / ค่า
ทั้ง find () และ filter () รับประกันลำดับขององค์ประกอบดังนั้นจึงปลอดภัยที่จะใช้ดังกล่าว