¿Cómo obtengo los últimos 5 elementos, excluyendo el primer elemento de una matriz?

Resuelto TIMEX asked hace 13 años • 9 respuestas

En una matriz de JavaScript, ¿cómo obtengo los últimos 5 elementos, excluyendo el primer elemento ?

[1, 55, 77, 88] // ...would return [55, 77, 88]

agregando ejemplos adicionales:

[1, 55, 77, 88, 99, 22, 33, 44] // ...would return [88, 99, 22, 33, 44]

[1] // ...would return []
TIMEX avatar Jun 25 '11 04:06 TIMEX
Aceptado

Puedes llamar:

arr.slice(Math.max(arr.length - 5, 1))

Si no desea excluir el primer elemento, utilice

arr.slice(Math.max(arr.length - 5, 0))
SLaks avatar Jun 24 '2011 21:06 SLaks

Aquí hay uno que no he visto y que es aún más corto.

arr.slice(1).slice(-5)

Ejecute el fragmento de código a continuación como prueba de que hace lo que desea

const arr = [];
for (let i = 0; i < 8; i++) {
    arr.push(i);
    console.log(`Array ${i + 1}: ${arr} -> ${arr.slice(1).slice(-5)}`);
}
Expandir fragmento

Otra forma de hacerlo sería usar lodash https://lodash.com/docs#rest ; eso es, por supuesto, si no te importa tener que cargar un enorme archivo JavaScript minificado si intentas hacerlo desde tu navegador. .

_.slice(_.rest(arr), -5)
Belldandu avatar Dec 18 '2015 22:12 Belldandu