Ecco più arte Javascript se sei venuto qui a cercarla
Nello spirito di un'altra risposta che ha usato reduceRight()
, ma più breve:
[3, 2, 1, 5].reduceRight(a => a);
Si basa sul fatto che, nel caso in cui non si fornisca un valore iniziale, l'ultimo elemento viene selezionato come quello iniziale (controllare i documenti qui ). Poiché il callback continua a restituire il valore iniziale, l'ultimo elemento sarà quello restituito alla fine.
Attenzione che questo dovrebbe essere considerato arte Javascript e non è affatto il modo in cui lo consiglierei, soprattutto perché funziona in tempo O (n), ma anche perché danneggia la leggibilità.
E ora per la risposta seria
Il modo migliore che vedo (considerando che lo vuoi più conciso di array[array.length - 1]
) è questo:
const last = a => a[a.length - 1];
Quindi basta usare la funzione:
last([3, 2, 1, 5])
La funzione è effettivamente utile nel caso in cui tu abbia a che fare con un array anonimo come [3, 2, 1, 5]
usato sopra, altrimenti dovresti istanziarlo due volte, il che sarebbe inefficiente e brutto:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
Ugh.
Ad esempio, ecco una situazione in cui hai un array anonimo e dovresti definire una variabile, ma puoi usare last()
invece:
last("1.2.3".split("."));