Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

118
Vistas
encontrar una matriz de objetos con una matriz - javascript

Llevo dos días intentando hacer esta función y no lo consigo. Me gustaría que la función me devuelva los objetos que satisfacen la matriz de filtros. El problema es que me gustaría que devuelva solo objetos que satisfagan todos los filtros.

Mi matriz de filtros:

 const myFiltersIngredients = ['farinha', 'frango']

Mi matriz de objetos:

 const myRecipes = [ { name: 'torta da vovo', ingredients: [ { ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'frango', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] }, { name: 'biscoito', ingredients: [ { ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'manteiga', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] } ]
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

 const myFiltersIngredients = ['farinha', 'frango']; const myRecipes = [{ name: 'torta da vovo', ingredients: [{ ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'frango', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] }, { name: 'biscoito', ingredients: [{ ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'manteiga', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] } ]; const myFiltered = myRecipes.filter(({ ingredients }) => myFiltersIngredients.every(myfilter => ingredients.map(({ ingredient }) => ingredient).includes(myfilter))); console.log( myFiltered );

about 4 years ago · Juan Pablo Isaza Denunciar

0

Espero que esta pequeña demostración te ayude a orientarte en la dirección correcta.

Aquí hay un enlace a la documentación del método .filter y .every array.

Como breve explicación:

El método .filter toma una función como argumento y ejecutará la función con cada objeto en la matriz. La función devolverá verdadero o falso. La matriz devuelta por .filter serán todos los elementos de la matriz que devolvieron verdadero según la función proporcionada.

El método .every toma una función como argumento y devuelve verdadero si todos los elementos de la matriz, cuando se pasan al argumento de la función, devuelven verdadero.

En mi código, primero declaro que quiero filtrar todas las recetas y devolver la matriz filtrada a una variable. La función que se pasa como argumento solo tiene una línea, que verifica el objeto para asegurarse de que todos los ingredientes asociados con ese objeto estén incluidos en la matriz myFiltersIngredients .

 const myFiltersIngredients = ['farinha', 'frango']; const myRecipes = [ { name: 'torta da vovo', ingredients: [ { ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'frango', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] }, { name: 'biscoito', ingredients: [ { ingredient: 'farinha', ingredientUnit: 'grama(s)', ingredientQuantity: 500 }, { ingredient: 'manteiga', ingredientUnit: 'grama(s)', ingredientQuantity: 500 } ] } ]; const filteredRecipes = myRecipes.filter(o => { return o.ingredients.every( ({ingredient}) => myFiltersIngredients.includes(ingredient) ); }); console.log(filteredRecipes);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda