AdventJS 2023 - Reto 2 🏭 Ponemos en marcha la fábrica


En el taller de Santa, los elfos tienen una lista de regalos que desean fabricar y un conjunto limitado de materiales.

Los regalos son cadenas de texto y los materiales son caracteres. Tu tarea es escribir una función que, dada una lista de regalos y los materiales disponibles, devuelva una lista de los regalos que se pueden fabricar.

Un regalo se puede fabricar si contamos con todos los materiales necesarios para fabricarlo.

const gifts = ['tren', 'oso', 'pelota'];
const materials = 'tronesa';
 
manufacture(gifts, materials); // ["tren", "oso"]
// 'tren' SÍ porque sus letras están en 'tronesa'
// 'oso' SÍ porque sus letras están en 'tronesa'
// 'pelota' NO porque sus letras NO están en 'tronesa'
 
const gifts = ['juego', 'puzzle'];
const materials = 'jlepuz';
 
manufacture(gifts, materials); // ["puzzle"]
 
const gifts = ['libro', 'ps5'];
const materials = 'psli';
 
manufacture(gifts, materials); // []

Mi solución

function manufacture(gifts, materials) {
  let aux = [];
 
  for (let gift of gifts) {
    let check = true;
    for (let c of gift) {
      if (!materials.includes(c)) {
        check = false;
      }
    }
    if (check == true) {
      aux.push(gift);
    }
  }
  return aux;
}

Puntuación

Los retos son puntuados utilizando diferentes factores como la complejidad cognitiva y la velocidad de ejecución. El número de líneas no es un factor determinante.