DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des files, piles, listes et tableaux / Fonctions Tableau
  • Fonctionnement
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Renvoie un tableau contenant les éléments d'un tableau source pour lesquels une procédure renvoie Vrai.
Cette fonction est utilisable :
  • sur les tableaux à une dimension,
  • sur les tableaux associatifs.
    AndroidWidget Android Non disponible.
Exemple
// Récupère le tableau de tous les clients
tabClient est un tableau de Client
// Construit le tableau des clients dont le compte est débiteur
tabClientDébiteur est un tableau de Client 
tabClientDébiteur = Filtre(tabClient, UnClient => UnClient.Solde<0)
// -> conserver les chiffres pairs d'un tableau (syntaxe préfixée)
tab2 est un tableau d'entiers = [1, 2, 3, 4]
tab2 = tab2.Filtre(X => EstPair(X))
// tab2 = [2, 4]
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst
tabValeurs est un tableau d'entiers = [1,2]
POUR TOUT x,c de Filtre(tabValeurs,valeur => valeur modulo 2 = 0)
	Trace(x,c)
FIN
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst
dictValeurs est tableau associatif d'entiers
dictValeurs["A"] = 1
dictValeurs["B"] = 2
dictValeurs["C"] = 3
dictValeurs["D"] = 4
POUR TOUT x,c de Filtre(dictValeurs,valeur => valeur modulo 2 = 0)
	Trace(x,c)
FIN
Syntaxe
<Résultat> = Filtre(<Tableau source> , <Condition à vérifier>)
<Résultat> : Tableau WLangage
Tableau contenant les éléments du <Tableau source> pour lesquels la procédure <Condition à vérifier> renvoie Vrai.
<Tableau source> : Tableau WLangage
Nom de la variable de type Tableau à manipuler. Ce tableau peut être :
  • un tableau à une dimension.
  • un tableau associatif.
    AndroidWidget Android Non disponible.
<Condition à vérifier> : Procédure WLangage
Nom de la procédure WLangage à exécuter pour chaque élément du <Tableau source>. Cette procédure doit renvoyer Vrai ou Faux.
Cette procédure peut être :
  • une procédure globale ou locale,
  • une procédure interne.
Il est également possible d'utiliser directement une procédure lambda.
Remarques

Fonctionnement

La procédure <Condition à vérifier> est appelée pour chaque élément du tableau source en passant en paramètre :
  • l'élément du tableau source,
  • la clé de l'élément.
    Dans le cas d'un tableau simple, la clé correspond à l'indice de l'élément. Ce paramètre est optionnel.
    Dans le cas d'un tableau associatif, la clé correspond à la clé d'indexation des éléments.
    AndroidWidget Android Non disponible.
Si la procédure renvoie Vrai, l'élément du tableau source est stocké dans le tableau <Résultat>.

Enchaînement de fonctions
Il est possible d'enchaîner les différentes fonctions de manipulation d'un tableau.
Les fonctions suivantes peuvent être utilisées dans un enchaînement : Cet enchaînement pourra être utilisé comme source d'une instruction POUR TOUT ou se terminer par une des fonctions suivantes : Exemple :
gnMoyenne = gtabUser.Filtre(cbFiltre).Transforme(cbTransforme).Moyenne()
Liste des exemples associés :
Les fonctions Filtre / Transforme / Agrège Exemples unitaires (WINDEV) : Les fonctions Filtre / Transforme / Agrège
[ + ] Cet exemple montre l'utilisation des fonctions Filtre / Transforme / Agrège.

Le concept de Filter / Map / Reduce (Filtre / Transforme / Agrège en français) permet de réaliser des opérations sur des collections de données de manière extrêmement concise.

La fonction Filtre permet de filtrer un tableau d'éléments de manière personnalisée (avec une procédure callback).

La fonction Transforme permet de transformer un tableau d'éléments, toujours avec une procédure callback.

La fonction Agrège permet d'agréger des données de manière personnalisée avec une procédure callback.

Ici, cet exemple permet de calculer l'âge moyen des femmes parmi les utilisateurs affichés dans un champ Table.
Composante : wd300vm.dll
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Tableau d'objets et Filtre
Remarque importante :

Si le tableau contient des objets, le tableau filtré contient les références des objets qui correspondent au filtre.

Par conséquent, si un objet du tableau filtré est modifié, l'objet qui correspond dans le tableau d'origine est lui aussi modifié.
mlemaudit
09 sep. 2021

Dernière modification : 22/04/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale