Menu
Coddy logo textTech

Desafio: Encontrar produto

Parte da seção Fundamentos do Journey de Dart da Coddy — lição 94 de 94.

challenge icon

Desafio

Fácil

Neste desafio, você praticará o uso do método find com listas para localizar itens específicos com base em condições.

Você tem uma lista de produtos em um carrinho de compras, representados como mapas com nome, preço e quantidade. Sua tarefa é completar a função findProduct que procura um produto pelo nome no carrinho.

A função deve retornar o primeiro produto que corresponde ao nome dado, ou null se nenhum for encontrado.

Complete o código para implementar corretamente essa funcionalidade de busca.

Experimente você mesmo

void main() {
  // Carrinho de compras com produtos
  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}
  ];
  
  // Testa a função 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');
  }
  
  // Testa com um produto que não existe
  foundProduct = findProduct(shoppingCart, 'Monitor');
  if (foundProduct != null) {
    print('Found: ${foundProduct['name']} - \$${foundProduct['price']} (Quantity: ${foundProduct['quantity']})');
  } else {
    print('Product not found');
  }
}

// TODO: Complete esta função para encontrar um produto pelo nome
Map<String, dynamic>? findProduct(List<Map<String, dynamic>> cart, String productName) {
  // TODO: Percorra o carrinho e retorne o primeiro produto que corresponda ao productName
  // TODO: Retorne null se nenhum produto correspondente for encontrado
  
}

Todas as lições de Fundamentos