Herausforderung: Produkt finden
Teil des Abschnitts Grundlagen der Dart-Journey von Coddy — Lektion 94 von 94.
Aufgabe
EinfachIn dieser Herausforderung üben Sie die Verwendung der find-Methode mit Listen, um spezifische Elemente basierend auf Bedingungen zu finden.
Sie haben eine Liste von Produkten im Warenkorb, die als Maps mit Name, Preis und Menge dargestellt werden. Ihre Aufgabe ist es, die findProduct-Funktion zu vervollständigen, die nach einem Produkt nach Name im Warenkorb sucht.
Die Funktion sollte das erste Produkt zurückgeben, das mit dem angegebenen Namen übereinstimmt, oder null, wenn kein Treffer gefunden wird.
Vervollständigen Sie den Code, um diese Suchfunktionalität ordnungsgemäß zu implementieren.
Probier es selbst
void main() {
// Einkaufswagen mit Produkten
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}
];
// Teste die findProduct Funktion
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 mit einem nicht existierenden Produkt
foundProduct = findProduct(shoppingCart, 'Monitor');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
}
// TODO: Vervollständige diese Funktion, um ein Produkt nach Namen zu finden
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
// TODO: Durchlaufe den Warenkorb und gib das erste Produkt zurück, das zum productName passt
// TODO: Gib null zurück, wenn kein passendes Produkt gefunden wird
}Alle Lektionen in Grundlagen
4Operatoren Teil 2
VergleichsoperatorenLogischer UNDLogischer ODERLogischer NICHTTypprüfoperatorenZusammenfassung - Vergleiche durchführen7Arbeiten mit Strings
String-KonkatenationString-InterpolationMehrzeilige StringsString-EigenschaftenGrundlegende String-Methoden10Sammlungen - Grundlagen von Maps
Was sind Maps?Eine Map erstellenWerte per Schlüssel abrufenSchlüssel-Wert-PaareGröße einer Map ermittelnSchlüssel abrufenWerte abrufenPrüfen, ob ein Schlüssel existiert13Null-Sicherheit im Detail
Null verstehenNullable-TypenNon-Nullable-TypenNull-Assertion-OperatorLate-InitialisierungZusammenfassung - Null sicher handhaben16Grundlagenherausforderungen
Herausforderung: Liste von BerechnungenHerausforderung: Summe von ZahlenHerausforderung: Produkt finden2Variablen und grundlegende Datentypen
Was sind Variablen?StringsGanzzahlen (int)Gleitkommazahlen (double)Boolesche Werte (bool)Typinferenz mit 'var'Finale VariablenKonstante VariablenNamenskonventionenGrundlegende Null-SicherheitZusammenfassung - Variablen deklarieren8Kontrollfluss - Schleifen
Die 'for'-SchleifeDie 'while'-SchleifeDie 'do-while'-Schleife'break' in Schleifen verwenden'continue' in Schleifen verwendenZusammenfassung - Code wiederholen3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivisionModulo-OperatorInkrement und DekrementZuweisungsabkürzungenZusammenfassung - Einfache Berechnungen6Steuerfluss - Entscheidungen
Die 'if'-AnweisungDie 'else'-AnweisungDie 'else if'-AnweisungZusammenfassung - Einfache EntscheidungenVerschachtelte 'if'-AnweisungenDie 'switch'-Anweisung9Sammlungen – Listen-Grundlagen
Was sind Listen?Eine Liste erstellenZugriff per IndexListenlänge ermittelnElemente hinzufügenElemente entfernenPrüfen, ob eine Liste leer istÜber eine Liste iterieren12Erweiterte Funktionen
Optionale Positions-ParameterBenannte ParameterErforderliche benannte ParameterStandardwerte für ParameterZusammenfassung - Funktionsparameter15Projekt: Einfacher Rechner
EinrichtenZahl deklarieren