Ini lebih banyak seni Javascript jika Anda datang ke sini mencarinya
Dengan semangat jawaban lain yang digunakan reduceRight()
, tetapi lebih pendek:
[3, 2, 1, 5].reduceRight(a => a);
Itu bergantung pada fakta bahwa, jika Anda tidak memberikan nilai awal, elemen terakhir dipilih sebagai yang awal (periksa dokumen di sini ). Karena panggilan balik hanya mengembalikan nilai awal, elemen terakhir akan menjadi yang dikembalikan pada akhirnya.
Berhati-hatilah karena ini harus dianggap sebagai seni Javascript dan sama sekali tidak seperti cara saya akan merekomendasikan melakukannya, terutama karena itu berjalan dalam waktu O (n), tetapi juga karena itu menyakitkan keterbacaan.
Dan sekarang untuk jawaban yang serius
Cara terbaik yang saya lihat (mengingat Anda menginginkannya lebih ringkas daripada array[array.length - 1]
) adalah ini:
const last = a => a[a.length - 1];
Kemudian gunakan saja fungsinya:
last([3, 2, 1, 5])
Fungsi ini sebenarnya berguna jika Anda berurusan dengan array anonim seperti yang [3, 2, 1, 5]
digunakan di atas, jika tidak Anda harus instantiate dua kali, yang akan menjadi tidak efisien dan jelek:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
Ugh.
Misalnya, inilah situasi di mana Anda memiliki array anonim dan Anda harus mendefinisikan variabel, tetapi Anda bisa menggunakannya last()
sebagai gantinya:
last("1.2.3".split("."));
const [lastItem] = arr.slice(-1)