Aquí hay más arte Javascript si viniste a buscarlo
En el espíritu de otra respuesta que usó reduceRight()
, pero más corta:
[3, 2, 1, 5].reduceRight(a => a);
Se basa en el hecho de que, en caso de que no proporcione un valor inicial, el último elemento se selecciona como el inicial (consulte los documentos aquí ). Como la devolución de llamada sigue devolviendo el valor inicial, el último elemento será el que se devuelve al final.
Tenga en cuenta que esto debería considerarse arte Javascript y de ninguna manera recomendaría hacerlo, principalmente porque se ejecuta en tiempo O (n), pero también porque perjudica la legibilidad.
Y ahora por la respuesta seria
La mejor manera que veo (considerando que lo quieres más conciso que array[array.length - 1]
) es esto:
const last = a => a[a.length - 1];
Entonces solo use la función:
last([3, 2, 1, 5])
La función es realmente útil en caso de que se trate de una matriz anónima como la [3, 2, 1, 5]
utilizada anteriormente, de lo contrario, tendría que instanciarla dos veces, lo que sería ineficiente y feo:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
Ugh
Por ejemplo, aquí hay una situación en la que tiene una matriz anónima y tendría que definir una variable, pero puede usar last()
en su lugar:
last("1.2.3".split("."));