{}const=>[]async()letfn</>var
Desarrollo

findLast() y findLastIndex() — una pequeña revolución en las matrices

Mostramos con ejemplos reales por qué los nuevos métodos de matriz reemplazan a los viejos con reverse(). Breve, claro y sin mutaciones.

К

Kodik

Autor

2 min de lectura

JavaScript puede sorprender incluso en 2025. Parece que ya tenemos todo para trabajar con matrices: map, filter, find, reduce... Pero recientemente han aparecido nuevos métodos: findLast() y findLastIndex(). Y no son solo cosméticos, sino una verdadera pequeña revolución.

¿Por qué necesitamos nuevos métodos?

Hasta hace poco, si necesitábamos encontrar último elemento de la matriz, que cumplía la condición, había que evitar:

  • Voltea la matriz a través de reverse() y aplica find().

  • O ir por el ciclo desde el final.

Las desventajas son obvias:

  • reverse() muta la matriz, lo que es peligroso y poco obvio.

  • El ciclo es engorroso y no está en el espíritu del JavaScript moderno.

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

¿Qué ha cambiado?

Ahora todo es más fácil:

  • findLast() busca el último elemento que coincida con la condición.

  • findLastIndex() devuelve el índice de este elemento.


const users = [
  { name: "Anya", active: false },
  { name: "Boris", active: true },
  { name: "Vika", active: false },
  { name: "Gosha", active: true }
];

console.log(users.findLast(user => user.active));
// { name: "Gosha", active: true }}

console.log(users.findLastIndex(user => user.active));
// 3
    

¿Por qué es mejor que los trucos antiguos?

  • El código se lee como texto — no es necesario adivinar la intención.

  • Seguridad — no hay mutaciones en la matriz.

  • Velocidad — el intérprete va desde el final y se detiene en la primera coincidencia.

«Antes/después»: ejemplos

Tarea

Antes

Ahora

Último usuario activo


const lastActive = users
  .slice()
  .reverse()
  .find(u => u.active);
          

const lastActive = users.findLast(u => u.active);
          

Índice del último error


const i = logs.length - 1 - logs
  .slice()
  .reverse()
  .findIndex(e => e.level === "error");
          

const i = logs.findLastIndex(e => e.level === "error");
          

Último elemento par


let last;
for (let i = arr.length - 1; i >= 0; i--) {
  if (arr[i] % 2 === 0) { last = arr[i]; break; }
}
          

const last = arr.findLast(n => n % 2 === 0);
          

Preguntas frecuentes

  • ¿Qué se devuelve? findLast() — elemento o undefined. findLastIndex() — índice o -1.

  • Sobre el rendimiento: pasa la matriz una vez desde el final, sin dar la vuelta ni copiar.

  • TypeScript: las firmas son similares a find/findIndex, la transición es mínima.

Conclusión

findLast() y findLastIndex() son un reemplazo práctico para los patrones de muletas con reverse() y bucles manuales. El código se vuelve más corto, más seguro y más obvio.

🙌 Discutimos todos estos trucos y novedades en nuestro acogedor Canal de Telegram, donde compartimos noticias del mundo del desarrollo, analizamos nuevas herramientas y bromeamos sobre la vida de los programadores. ¡Únete, será interesante!

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta