¿Cómo obtengo los últimos 5 elementos, excluyendo el primer elemento de una matriz?
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 []
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))
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)