มาเรียนรู้วิธีรับองค์ประกอบสุดท้ายของอาร์เรย์ด้วย JavaScript ธรรมดาโดยใช้ 3 วิธีที่แตกต่างกัน อันดับแรก มาตั้งค่าอาร์เรย์ของไอเท็มกันก่อน เพื่อให้เรามีบางอย่างที่ต้องใช้งาน ในกรณีนี้ เราจะใช้รายการแบบฝึกหัด
สร้างอาร์เรย์การออกกำลังกาย
const exercises = ['pull-up', 'push-up', 'squat', 'deadlift']
หากเราต้องการคว้าตัวแรกในรายการ เราใช้ exercises[0]
เพื่อใช้ครั้งที่สอง exercises[1]
แต่ถ้าเราไม่ทราบจำนวนการออกกำลังกายทั้งหมดในรายการของเราล่ะ
ไม่มีปัญหา มีบางวิธีที่เราทำได้
1. ค้นหาองค์ประกอบสุดท้ายด้วย array.length
ในวิธีแรก เราจะใช้ array.length
. ของ JavaScript คุณสมบัติ. ในการใช้งาน เราต้องตั้งค่าตัวแปรก่อน แล้วจึงกำหนดอาร์เรย์ของเราให้กับมัน:
const lastExercise = exercises[exercises.length - 1]
ตอนนี้ ถ้าคุณเรียกใช้ console.log(lastExercise)
คอนโซลของคุณจะส่งออกองค์ประกอบสุดท้ายของอาร์เรย์ในกรณีของเขา deadlift
.
2. ค้นหาองค์ประกอบสุดท้ายโดยใช้ pop()
นอกจากนี้เรายังสามารถใช้วิธีการอาร์เรย์ JavaScript ที่เรียกว่า pop()
ซึ่งยังได้รับองค์ประกอบสุดท้ายของอาร์เรย์แต่ในทางที่แตกต่างกัน ลองใช้เลย:
exercises.pop()
เมธอด pop() กำหนดเป้าหมายองค์ประกอบสุดท้ายในอาร์เรย์ของเรา แต่ระวังว่าไม่เพียงแต่ค้นหาองค์ประกอบสุดท้ายของอาร์เรย์ของคุณ แต่ยัง ลบออก
หากคุณ console.log(exercises)
ด้านล่างขวา exercises.pop()
คุณจะเห็นว่าตอนนี้อาร์เรย์ของคุณมีองค์ประกอบ 3 อย่าง แทนที่จะเป็น 4 แบบเดิม ซึ่งอาจจะเป็นหรือไม่ใช่สิ่งที่คุณต้องการก็ได้ ขึ้นอยู่กับกรณีการใช้งานของคุณ
3. ค้นหาองค์ประกอบสุดท้ายด้วย Array slice() Method
วิธีสุดท้ายที่ฉันต้องการแสดงให้คุณเห็นคล้ายกับ length
วิธี แต่ที่นี่เราใช้ slice()
แทนดังนี้:
const lastExercise = exercises.slice(-1)
ตอนนี้ถ้าคุณ console.log(lastExercise)
คุณจะได้ผลลัพธ์เหมือนกับใน length
ตัวอย่าง. นักพัฒนาจำนวนมากพบ slice
วิธีให้ผู้อ่านอ่านง่ายกว่า length
วิธี แต่น่าเสียดายที่มัน ช้ากว่ามาก ประสิทธิภาพที่ชาญฉลาด
หากต้องการดูว่าฉันหมายถึงอะไร ให้ลองใช้การทดสอบเปรียบเทียบสไลซ์กับความยาวบน jsperf.com
คุณควรใช้วิธีอาร์เรย์ที่มีประสิทธิภาพมากที่สุดหรืออ่านง่ายที่สุด? ไม่มีคำตอบที่ถูกหรือผิด ขึ้นอยู่กับบริบทของคุณ
โดยทั่วไปแล้ว ฉันมักจะมุ่งความสนใจไปที่การเลือกประสิทธิภาพมากกว่าความสะดวก เมื่อทำงานกับภาพ ไม่ใช่คำถามขาวดำ ในแง่ของการค้นหาองค์ประกอบสุดท้ายในอาร์เรย์อย่างง่าย คุณจะไม่เห็นความแตกต่างของประสิทธิภาพระหว่าง slice
และ length
ในแอปของคุณ เว้นแต่ว่าคุณกำลังเรียกใช้ฟังก์ชันนับล้านต่อวินาที
ตัดสินใจตามบริบทเสมอ