Resumen - Data Pipeline
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 27 de 56.
Un desafío que procesa un pequeño conjunto de datos a través de una cadena de métodos Enumerable, de la misma forma en que escribirás Ruby en la vida real.
Desafío
IntermedioSe proporciona el array orders, cada elemento es un hash con :product, :qty y :price. Imprime tres líneas:
- Los ingresos totales de todos los pedidos (
qty * price, sumados). Usamap+reduce(:+), osum { ... }. - El número de pedidos con
qty >= 3(usacount). - El nombre del producto del pedido con los mayores ingresos (usa
max_by).
Para el array por defecto, la salida es:
59
2
milkPruébalo tú mismo
orders = [
{ product: "apple", qty: 4, price: 2 },
{ product: "bread", qty: 1, price: 3 },
{ product: "milk", qty: 6, price: 4 },
{ product: "cheese", qty: 2, price: 12 }
]
# TODO: ingresos totales, recuento de pedidos con cantidad >= 3, producto con mayores ingresos
Todas las lecciones de Lógica y flujo
1Strings en profundidad
Visión general de los métodos de StringInterpolación de StringsIterar sobre StringsSplit y JoinRepaso - String Weaver4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end vs llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasResumen - Iterador personalizado7Hashes Parte 2
Hash.new con valores por defectoIteración de HashesHashes anidadosFusión y transformaciónResumen - Contador de frecuencia10Proyecto - Registros de Estudiantes
Descripción general del proyectoAgregar estudiante5Potencia de Enumerable
Select y RejectEncadenando MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byResumen - Data Pipeline