Solución

@estouchedisindo·19/5/2026TypeScript
solution.tsTypeScript
interface Product {
  name: string;
  price: number;
  stock: number;
  category: string;
}

interface Criteria {
  category?: string;
  maxPrice?: number;
  inStock?: boolean;
}

export function findProduct(products: Product[], criteria: Criteria): Product | undefined {
  // Retorna el primer producto que cumpla todos los criterios indicados
  // console.log(products, criteria)
  return products.find( (productObj) => {

    if( criteria.hasOwnProperty('category') 
            && productObj['category'] !== criteria['category']) {
        return false;
      }

    if( criteria.hasOwnProperty('maxPrice') 
            && productObj['price'] >= criteria['maxPrice']) {
        return false;
      }

    if( criteria.hasOwnProperty('inStock') 
            && productObj['stock'] < 0 ) {
        return false;
    }

    return true;
   }) || null;
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.