Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีรับองค์ประกอบสุดท้ายของอาร์เรย์ด้วย Vanilla JavaScript

มาเรียนรู้วิธีรับองค์ประกอบสุดท้ายของอาร์เรย์ด้วย 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 ในแอปของคุณ เว้นแต่ว่าคุณกำลังเรียกใช้ฟังก์ชันนับล้านต่อวินาที

ตัดสินใจตามบริบทเสมอ