Défi : Trouver le produit
Fait partie de la section Fondamentaux du Journey Dart de Coddy — leçon 94 sur 94.
Défi
FacileDans ce défi, vous pratiquerez l'utilisation de la méthode find avec des listes pour localiser des éléments spécifiques en fonction de conditions.
Vous avez une liste de produits dans un panier d'achats, représentés sous forme de maps avec name, price et quantity. Votre tâche est de compléter la fonction findProduct qui recherche un produit par nom dans le panier.
La fonction doit retourner le premier produit qui correspond au nom donné, ou null s'il n'y a pas de correspondance.
Complétez le code pour implémenter correctement cette fonctionnalité de recherche.
Essayez vous-même
void main() {
// Panier d'achat avec des produits
List<Map<String, dynamic>> shoppingCart = [
{'name': 'Laptop', 'price': 999.99, 'quantity': 1},
{'name': 'Headphones', 'price': 59.99, 'quantity': 2},
{'name': 'Mouse', 'price': 24.99, 'quantity': 1},
{'name': 'Keyboard', 'price': 49.99, 'quantity': 1}
];
// Test de la fonction findProduct
Map<String, dynamic>? foundProduct = findProduct(shoppingCart, 'Headphones');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
// Test avec un produit qui n'existe pas
foundProduct = findProduct(shoppingCart, 'Monitor');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
}
// TODO: Compléter cette fonction pour trouver un produit par nom
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
// TODO: Parcourir le panier et retourner le premier produit qui correspond à productName
// TODO: Retourner null si aucun produit correspondant n'est trouvé
}Toutes les leçons de Fondamentaux
4Opérateurs Partie 2
Opérateurs de comparaisonET logiqueOU logiqueNON logiqueOpérateurs de test de typeRécapitulatif - Faire des comparaisons7Travailler avec les chaînes
Concaténation de chaînesInterpolation de chaînesChaînes multi-lignesPropriétés des chaînesMéthodes de base des chaînes10Collections - Bases des Maps
Que sont les Maps ?Créer une MapAccéder aux valeurs par cléPaires clé-valeurObtenir la taille d'une MapObtenir les clésObtenir les valeursVérifier si une clé existe2Variables et types de données de base
Qu'est-ce que les variables ?ChaînesEntiers (int)Doubles (double)Booléens (bool)Inférence de type avec 'var'Variables finalesVariables constantesConventions de nommageSécurité null de baseRécapitulatif - Déclaration des variables8Flux de contrôle - Boucles
La boucle 'for'La boucle 'while'La boucle 'do-while'Utiliser 'break' dans les bouclesUtiliser 'continue' dans les bouclesRécapitulatif - Répéter du code3Opérateurs Partie 1
Opérateurs arithmétiquesDivision entièreOpérateur moduloIncrémentation et décrémentationRaccourcis d'affectationRécapitulatif - Calculs simples6Flux de contrôle - Prise de décision
L'instruction 'if'L'instruction 'else'L'instruction 'else if'Récapitulatif - Décisions simplesInstructions 'if' imbriquéesL'instruction 'switch'9Collections - Bases des listes
Qu’est-ce qu’une liste ?Créer une listeAccéder par indexObtenir la longueur d’une listeAjouter des élémentsSupprimer des élémentsVérifier si une liste est videItérer sur une liste12Fonctions avancées
Paramètres positionnels optionnelsParamètres nommésParamètres nommés requisValeurs par défaut des paramètresRécap - Paramètres de fonction15Projet : Calculatrice simple
Mise en placeDéclaration d'un nombre