Oto więcej sztuki Javascript, jeśli tu przyszedłeś jej szukać
W duchu innej odpowiedzi, która została użyta reduceRight()
, ale krótsza:
[3, 2, 1, 5].reduceRight(a => a);
Opiera się na fakcie, że jeśli nie podasz wartości początkowej, ostatni element jest wybierany jako element początkowy (sprawdź tutaj dokumenty ). Ponieważ wywołanie zwrotne po prostu zwraca wartość początkową, ostatni element będzie zwracany na końcu.
Uważaj, że należy to uznać za sztukę Javascript i nie jest to sposób, w jaki poleciłbym to zrobić, głównie dlatego, że działa w czasie O (n), ale także dlatego, że szkodzi czytelności.
A teraz poważna odpowiedź
Najlepszy sposób, jaki widzę (biorąc pod uwagę, że chcesz bardziej zwięzły niż array[array.length - 1]
), to:
const last = a => a[a.length - 1];
Następnie wystarczy użyć funkcji:
last([3, 2, 1, 5])
Ta funkcja jest przydatna w przypadku, gdy masz do czynienia z anonimową tablicą, taką jak [3, 2, 1, 5]
używana powyżej, w przeciwnym razie musiałbyś utworzyć ją dwukrotnie, co byłoby nieefektywne i brzydkie:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
Ugh.
Na przykład, oto sytuacja, w której masz anonimową tablicę i musisz zdefiniować zmienną, ale last()
zamiast tego możesz użyć :
last("1.2.3".split("."));
const [lastItem] = arr.slice(-1)