Introduction
Dans ce laboratoire, nous allons explorer le concept de recherche des derniers n éléments qui satisfont une condition donnée dans un tableau. Nous allons apprendre à utiliser une boucle for pour parcourir le tableau et exécuter une fonction fournie sur chaque élément. Nous allons également apprendre à utiliser la méthode Array.prototype.unshift() pour ajouter en tête les éléments correspondants au tableau de résultats et à le renvoyer une fois la longueur souhaitée atteinte.
Instructions to find Last N Matches
Pour trouver les derniers n éléments qui correspondent à une certaine condition, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Utilisez la fonction
findLastNfournie ci-dessous. - Fournissez un tableau
arret une fonctionmatcherqui renvoie une valeur véridique pour les éléments que vous souhaitez correspondre. - Facultativement, vous pouvez également fournir le nombre
nde correspondances que vous souhaitez renvoyer (la valeur par défaut est 1). - La fonction exécutera la fonction
matcherpour chaque élément dearrà l'aide d'une bouclefor, en commençant par le dernier élément. - Si un élément correspond à la condition
matcher, il sera ajouté au tableau de résultats à l'aide deArray.prototype.unshift(), qui ajoute des éléments en tête du tableau. - Lorsque la longueur du tableau de résultats est égale à
n, la fonction renverra les résultats. - Si il n'y a pas de correspondances ou si
nest supérieur au nombre de correspondances, un tableau vide sera renvoyé.
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;
};
Voici quelques exemples d'utilisation de la fonction 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]
Summary
Félicitations! Vous avez terminé le laboratoire Find Last N Matches. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.