Trouver les derniers n correspondances

Beginner

This tutorial is from open-source community. Access the source code

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 :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez la fonction findLastN fournie ci-dessous.
  3. Fournissez un tableau arr et une fonction matcher qui renvoie une valeur véridique pour les éléments que vous souhaitez correspondre.
  4. Facultativement, vous pouvez également fournir le nombre n de correspondances que vous souhaitez renvoyer (la valeur par défaut est 1).
  5. La fonction exécutera la fonction matcher pour chaque élément de arr à l'aide d'une boucle for, en commençant par le dernier élément.
  6. Si un élément correspond à la condition matcher, il sera ajouté au tableau de résultats à l'aide de Array.prototype.unshift(), qui ajoute des éléments en tête du tableau.
  7. Lorsque la longueur du tableau de résultats est égale à n, la fonction renverra les résultats.
  8. Si il n'y a pas de correspondances ou si n est 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.