Menu
CoddyTech

Thử thách: Tìm tích

Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 94 trên 94.

challenge icon

Thử thách

Dễ

Trong thử thách này, bạn sẽ luyện tập duyệt qua danh sách để tìm phần tử đầu tiên thỏa mãn một điều kiện.

Bạn có danh sách sản phẩm trong giỏ hàng, được biểu diễn dưới dạng các từ điển có tên, giá và số lượng. Nhiệm vụ của bạn là hoàn thiện hàm findProduct để tìm sản phẩm theo tên trong giỏ hàng.

Hàm này cần trả về sản phẩm đầu tiên khớp với tên đã cho hoặc null nếu không tìm thấy sản phẩm nào.

Hoàn thiện code để triển khai chức năng tìm kiếm này.

Tự làm thử

void main() {
  // Giỏ hàng chứa các sản phẩm
  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}
  ];
  
  // Kiểm tra hàm (function) 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');
  }
  
  // Kiểm tra với một sản phẩm không tồn tại
  foundProduct = findProduct(shoppingCart, 'Monitor');
  if (foundProduct != null) {
    print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
  } else {
    print('Product not found');
  }
}

// TODO: Hoàn thiện hàm này để tìm sản phẩm theo tên
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
  // TODO: Duyệt qua giỏ hàng và trả về sản phẩm đầu tiên có tên khớp với productName
  // TODO: Trả về null nếu không tìm thấy sản phẩm phù hợp
  
}

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch Dart online