EJERCICIO 18 · Reto

Filtra productos disponibles

Implementa disponibles(productos, maximo), que devuelva nombres de productos con stock > 0 y precio <= maximo.

Datos Reto

Tu misión

Implementa disponibles(productos, maximo), que devuelva nombres de productos con stock > 0 y precio <= maximo.

Define la función disponibles en el editor. El corrector llamará a tu función con distintas entradas y comprobará el valor devuelto. No basta con imprimir un resultado fijo.

Repasa si lo necesitas: Exige dos requisitos con && · Transforma cada elemento con map · Proyecto: encuentra productos por su nombre

Primero selecciona con filter los productos que cumplen ambos requisitos. Después usa map para devolver solo sus nombres.

Ejemplos de entrada y resultado
LlamadaDebe devolver
disponibles([{"nombre":"Té","stock":2,"precio":4},{"nombre":"Café","stock":0,"precio":2}], 5)["Té"]
disponibles([], 10)[]

Pulsa Comprobar solución para probar también otras entradas. Puedes usar cualquier implementación que cumpla la consigna.

¿Necesitas una pista?

Pista 1

Primero selecciona los productos adecuados.

Pista 2

Requiere stock positivo y precio dentro del límite.

Pista 3

Después transforma cada producto a su nombre.

Ver solución explicada

Encadenar filter y map permite separar selección y transformación.

function disponibles(productos, maximo) {
  return productos.filter(p => p.stock > 0 && p.precio <= maximo).map(p => p.nombre);
}

Esta es una solución posible. Otras implementaciones que produzcan el mismo comportamiento también son válidas.

Para ir un poco más lejos

Ordena el resultado alfabéticamente.