Introducción
En este laboratorio, exploraremos el concepto de encontrar los últimos n elementos que satisfacen una condición dada en una matriz. Aprenderemos a usar un bucle for para iterar a través de la matriz y ejecutar una función proporcionada en cada elemento. También aprenderemos a usar el método Array.prototype.unshift() para agregar elementos coincidentes al principio del arreglo de resultados y devolverlo una vez que se alcanza la longitud deseada.
Instrucciones para encontrar las últimas N coincidencias
Para encontrar los últimos n elementos que coinciden con una cierta condición, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Utilice la función
findLastNproporcionada a continuación. - Proporcione una matriz
arry una funciónmatcherque devuelva un valor verdadero para los elementos que desea coincidir. - Opcionalmente, también puede proporcionar el número
nde coincidencias que desea devolver (el valor predeterminado es 1). - La función ejecutará la función
matcherpara cada elemento dearrutilizando un buclefor, comenzando desde el último elemento. - Si un elemento coincide con la condición
matcher, se agregará al arreglo de resultados utilizandoArray.prototype.unshift(), que agrega elementos al principio del arreglo. - Cuando la longitud del arreglo de resultados sea igual a
n, la función devolverá los resultados. - Si no hay coincidencias o
nes mayor que el número de coincidencias, se devolverá un arreglo vacío.
const findLastN = (arr, matcher, n = 1) => {
let res = [];
for (let i = arr.length - 1; i >= 0; i--) {
const el = arr[i];
const match = matcher(el, i, arr);
if (match) res.unshift(el);
if (res.length === n) return res;
}
return res;
};
A continuación, se presentan algunos ejemplos de cómo utilizar la función findLastN:
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 2); // [4, 6]
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 5); // [2, 4, 6]
Resumen
¡Felicitaciones! Has completado el laboratorio de Encontrar las últimas N coincidencias. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.