Menu
Coddy logo textTech

チャレンジ: 積を求める

CoddyのDartジャーニー「基礎」セクションの一部 — レッスン 94/94。

challenge icon

チャレンジ

簡単

このチャレンジでは、リストで条件に基づいて特定のアイテムを検索するために 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を返す
  
}

基礎のすべてのレッスン