Menu
Coddy logo textTech

Desafío: Encontrar producto

Parte de la sección Fundamentos del Journey de Dart de Coddy — lección 94 de 94.

challenge icon

Desafío

Fácil

En este desafío, practicarás el uso del método find con listas para localizar elementos específicos basados en condiciones.

Tienes una lista de productos en un carrito de compras, representados como mapas con nombre, precio y cantidad. Tu tarea es completar la función findProduct que busca un producto por nombre en el carrito.

La función debe devolver el primer producto que coincida con el nombre dado, o null si no se encuentra coincidencia.

Completa el código para implementar correctamente esta funcionalidad de búsqueda.

Pruébalo tú mismo

void main() {
  // Carrito de compras con productos
  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}
  ];
  
  // Prueba la función 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');
  }
  
  // Prueba con un producto que no existe
  foundProduct = findProduct(shoppingCart, 'Monitor');
  if (foundProduct != null) {
    print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
  } else {
    print('Product not found');
  }
}

// TODO: Completa esta función para encontrar un producto por nombre
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
  // TODO: Recorre el carrito y devuelve el primer producto que coincida con productName
  // TODO: Devuelve null si no se encuentra un producto coincidente
  
}

Todas las lecciones de Fundamentos