Token inexistente. Accedé al challenge mediante el link provisto por Silstech.
Challenge técnico en cuatro pasos con dificultad incremental. Cada ejercicio trabaja sobre el mismo dataset con métodos nativos de JavaScript.
Tenés un arreglo de productos. Cada uno tiene nombre, precio y stock.
Usá Array.filter para obtener solo los productos que tienen stock > 0.
Guardá el resultado en una variable llamada disponibles.
const productos = [ { nombre: "Manzana", precio: 150, stock: 30 }, { nombre: "Banana", precio: 90, stock: 0 }, { nombre: "Naranja", precio: 120, stock: 15 }, { nombre: "Pera", precio: 200, stock: 0 }, { nombre: "Uva", precio: 350, stock: 8 }, ];
array.filter(item => condición) devuelve un nuevo arreglo con los elementos donde la condición es true.const disponibles = productos.filter(p => p.stock > 0)
Con el mismo arreglo de productos, usá Array.map para generar un nuevo arreglo de strings con este formato:
"Manzana — $150"
El resultado debe tener un string por cada producto. Guardalo en etiquetas.
const productos = [ { nombre: "Manzana", precio: 150, stock: 30 }, { nombre: "Banana", precio: 90, stock: 0 }, { nombre: "Naranja", precio: 120, stock: 15 }, { nombre: "Pera", precio: 200, stock: 0 }, { nombre: "Uva", precio: 350, stock: 8 }, ];
array.map(item => expresión) transforma cada elemento y devuelve un nuevo arreglo del mismo tamaño.`${item.nombre} — $${item.precio}`
Los productos ahora tienen una propiedad categoria. Usá Array.reduce para construir un diccionario donde cada clave sea una categoría y el valor sea un arreglo con los nombres de los productos de esa categoría.
Guardá el resultado en agrupados.
const productos = [ { nombre: "Manzana", categoria: "fruta", precio: 150 }, { nombre: "Banana", categoria: "fruta", precio: 90 }, { nombre: "Zanahoria", categoria: "verdura", precio: 80 }, { nombre: "Lechuga", categoria: "verdura", precio: 60 }, { nombre: "Uva", categoria: "fruta", precio: 350 }, { nombre: "Papa", categoria: "verdura", precio: 50 }, ];
reduce((acum, item) => { ... }, {}) empieza con un objeto vacío como acumulador.acum[item.categoria] = acum[item.categoria] || []acum[item.categoria].push(item.nombre) — no olvides return acum
Combiná todo en un solo pipeline encadenado, sin variables intermedias. A partir del arreglo:
stock > 0precio <= 200{ nombre, total: precio * stock }totalresultado.
const productos = [ { nombre: "Manzana", precio: 150, stock: 30 }, { nombre: "Banana", precio: 90, stock: 0 }, { nombre: "Naranja", precio: 120, stock: 15 }, { nombre: "Pera", precio: 200, stock: 12 }, { nombre: "Uva", precio: 350, stock: 8 }, { nombre: "Mandarina", precio: 100, stock: 25 }, ];
productos.filter(...).filter(...).map(...).sort(...)total: .sort((a, b) => b.total - a.total)
Los cuatro pasos fueron resueltos correctamente.