นี่คือ Javascript อาร์ตมากขึ้นถ้าคุณมาที่นี่เพื่อค้นหามัน
ด้วยจิตวิญญาณของคำตอบอื่นที่ใช้reduceRight()
แต่สั้นกว่า:
[3, 2, 1, 5].reduceRight(a => a);
ขึ้นอยู่กับความจริงที่ว่าในกรณีที่คุณไม่ได้ระบุค่าเริ่มต้นองค์ประกอบสุดท้ายจะถูกเลือกให้เป็นองค์ประกอบเริ่มต้น (ตรวจสอบเอกสารที่นี่ ) เนื่องจากการโทรกลับยังคงส่งคืนค่าเริ่มต้นองค์ประกอบสุดท้ายจะเป็นคืนที่สิ้นสุด
ระวังว่านี่ควรได้รับการพิจารณาเป็นศิลปะจาวาสคริปต์และไม่ได้เป็นวิธีที่ฉันแนะนำให้ทำส่วนใหญ่เป็นเพราะมันทำงานในเวลา O (n) แต่ยังเพราะมันเจ็บอ่านง่าย
และตอนนี้สำหรับคำตอบที่จริงจัง
วิธีที่ดีที่สุดที่ฉันเห็น (พิจารณาว่าคุณต้องการให้รัดกุมกว่าarray[array.length - 1]
) คือ:
const last = a => a[a.length - 1];
จากนั้นใช้ฟังก์ชั่น:
last([3, 2, 1, 5])
ฟังก์ชั่นนี้มีประโยชน์จริง ๆ ในกรณีที่คุณจัดการกับอาเรย์ที่ไม่ระบุชื่อเช่นที่[3, 2, 1, 5]
ใช้ข้างบนมิฉะนั้นคุณจะต้องสร้างอินสแตนซ์ของมันสองครั้งซึ่งจะไม่มีประสิทธิภาพและน่าเกลียด:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
ฮึ.
ตัวอย่างเช่นนี่เป็นสถานการณ์ที่คุณมีอาร์เรย์ที่ไม่ระบุชื่อและคุณต้องกำหนดตัวแปร แต่คุณสามารถใช้last()
แทน:
last("1.2.3".split("."));
const [lastItem] = arr.slice(-1)