Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

70
Views
filtrar una matriz de objetos si las propiedades están en otra matriz y los valores son verdaderos

El siguiente es un ejemplo que produce el resultado deseado.

 const data = [ { itemID: '300', status: 'active', inventoryFlag: true, certifiedFlag: false, donateFlag: true }, { itemID: '400', status: 'inactive', inventoryFlag: true, certifiedFlag: true, donateFlag: false }, { itemID: '500', status: 'active', inventoryFlag: false, certifiedFlag: false, donateFlag: false }, { itemID: '600', status: 'active', inventoryFlag: false, certifiedFlag: true, donateFlag: true }, { itemID: '700', status: 'inactive', inventoryFlag: false, certifiedFlag: true, donateFlag: false } ]; document.getElementById("data").innerText = JSON.stringify(data.filter(o => o.inventoryFlag || o.donateFlag));
 <textarea id="data" rows="50" cols="100"></textarea>

Estoy tratando de encontrar una manera de enumerar las banderas filtradas en una matriz separada y luego usar eso en .filter() de alguna manera para obtener el mismo conjunto de resultados que el código anterior.

Por ejemplo, estas son las banderas que se usarán para filtrar Y al menos uno de los valores debe ser verdadero en el objeto que se incluirá en el conjunto de datos final:

 const flags = ['inventoryFlag', 'donateFlag'];

Para empezar, probé esto pero no hizo nada:

 const filteredData = data.filter(o => flags.includes(Object.keys(o)));
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Dentro del filter , use el método some para detectar si alguna de las claves de propiedad de una entrada, que están contenidas en la matriz de flags , tiene el valor de true .

 const data = [ { itemID: '300', status: 'active', inventoryFlag: true, certifiedFlag: false, donateFlag: true }, { itemID: '400', status: 'inactive', inventoryFlag: true, certifiedFlag: true, donateFlag: false }, { itemID: '500', status: 'active', inventoryFlag: false, certifiedFlag: false, donateFlag: false }, { itemID: '600', status: 'active', inventoryFlag: false, certifiedFlag: true, donateFlag: true }, { itemID: '700', status: 'inactive', inventoryFlag: false, certifiedFlag: true, donateFlag: false } ]; const flags = ['inventoryFlag', 'donateFlag']; const result = data.filter(entry => flags.some(flag => entry[flag] === true) ); console.log(result);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!