Desafío: Encontrar producto
Parte de la sección Fundamentos del Journey de Dart de Coddy — lección 94 de 94.
Desafío
FácilEn 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
4Operadores Parte 2
Operadores de ComparaciónAND LógicoOR LógicoNOT LógicoOperadores de Prueba de TipoResumen - Realizando Comparaciones7Trabajando con Cadenas
Concatenación de CadenasInterpolación de CadenasCadenas MultilíneaPropiedades de CadenasMétodos Básicos de Cadenas10Colecciones - Conceptos básicos de Mapas
¿Qué son los Mapas?Creando un MapaAccediendo a Valores por ClavePares Clave-ValorObteniendo el Tamaño del MapaObteniendo las ClavesObteniendo los ValoresVerificando si una Clave Existe13Null Safety en Profundidad
Comprendiendo NullTipos NullableTipos No NullableOperador de Afirmación NullInicialización TardíaResumen - Manejo Seguro de Null16Desafíos Fundamentales
Desafío: Lista de cálculosDesafío: Suma de númerosDesafío: Encontrar producto2Variables y Tipos de Datos Básicos
¿Qué son las Variables?CadenasEnteros (int)Dobles (double)Booleanos (bool)Inferencia de Tipos con 'var'Variables FinalesVariables ConstantesConvenciones de NombresSeguridad Básica ante NullResumen - Declarando Variables8Flujo de control - Bucles
El bucle 'for'El bucle 'while'El bucle 'do-while'Usando 'break' en buclesUsando 'continue' en buclesResumen - Código repetitivo3Operadores Parte 1
Operadores AritméticosDivisión EnteraOperador MóduloIncremento y DecrementoAtajos de AsignaciónResumen - Cálculos Simples6Flujo de Control - Toma de Decisiones
La sentencia 'if'La sentencia 'else'La sentencia 'else if'Resumen - Decisiones SimplesSentencias 'if' AnidadasLa sentencia 'switch'9Colecciones - Listas Básicas
¿Qué son las listas?Creando una listaAccediendo por índiceObteniendo la longitud de la listaAgregando elementosEliminando elementosComprobando si una lista está vacíaIterando sobre una lista12Funciones Avanzadas
Parámetros Posicionales OpcionalesParámetros NombradosParámetros Nombrados RequeridosValores de Parámetro por DefectoResumen - Parámetros de Función15Proyecto: Calculadora Simple
ConfigurandoDeclarando Número