チャレンジ: 積を求める
CoddyのDartジャーニー「基礎」セクションの一部 — レッスン 94/94。
チャレンジ
簡単このチャレンジでは、リストで条件に基づいて特定のアイテムを検索するために find メソッドを使用する練習をします。
ショッピングカート内の商品リストがあり、それぞれ name、price、quantity を持つマップとして表現されています。あなたのタスクは、カート内で名前で商品を検索する findProduct 関数を完成させることです。
この関数は、指定された名前に一致する最初の商品を返し、一致する商品が見つからない場合は null を返すべきです。
この検索機能を実装するためにコードを完成させてください。
自分で試してみよう
void main() {
// 商品を含むショッピングカート
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}
];
// 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');
}
// 存在しない商品でのテスト
foundProduct = findProduct(shoppingCart, 'Monitor');
if (foundProduct != null) {
print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
} else {
print('Product not found');
}
}
// TODO: 商品名で商品を見つけるこの関数を完成させる
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
// TODO: カートをループしてproductNameに一致する最初の商品を返す
// TODO: 一致する商品が見つからない場合はnullを返す
}