Introduction
Dans ce laboratoire, nous allons explorer le concept d'initialisation et de remplissage d'un tableau avec des valeurs générées par une fonction jusqu'à ce qu'une condition spécifique soit remplie. Nous utiliserons la fonction initializeArrayUntil qui prend deux arguments : conditionFn et mapFn. Grâce à ce laboratoire, vous comprendrez mieux comment utiliser cette fonction pour générer des tableaux avec des valeurs et des conditions personnalisées.
Comment initialiser un tableau jusqu'à ce qu'une condition soit remplie
Pour commencer à pratiquer la programmation, ouvrez le Terminal/SSH et tapez node.
Voici les étapes pour initialiser et remplir un tableau avec des valeurs générées par une fonction jusqu'à ce qu'une certaine condition soit remplie :
- Créez un tableau vide
arr, une variable d'indexiet un élémentel. - Utilisez une boucle
do...whilepour ajouter des éléments au tableau en utilisant la fonctionmapFnjusqu'à ce que la fonctionconditionFnretournetruepour l'indexiet l'élémenteldonnés. - La fonction
conditionFnprend trois arguments : l'index actuel, l'élément précédent et le tableau lui-même. - La fonction
mapFnprend trois arguments : l'index actuel, l'élément actuel et le tableau lui-même.
Voici le code :
const initializeArrayUntil = (conditionFn, mapFn) => {
const arr = [];
let i = 0;
let el = undefined;
do {
el = mapFn(i, el, arr);
arr.push(el);
i++;
} while (!conditionFn(i, el, arr));
return arr;
};
Pour utiliser la fonction initializeArrayUntil, fournissez deux fonctions en tant qu'arguments :
initializeArrayUntil(
(i, val) => val > 10, //conditionFn
(i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2]) //mapFn
); // [1, 1, 2, 3, 5, 8, 13]
Ce code initialise un tableau avec la suite de Fibonacci jusqu'au premier nombre supérieur à 10. La fonction conditionFn vérifie si la valeur actuelle est supérieure à 10, et la fonction mapFn génère le prochain nombre de la suite.
Résumé
Félicitations ! Vous avez terminé le laboratoire Initialiser un tableau jusqu'à. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.