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

182
Views
filtrar una matriz de objetos que tiene matrices anidadas, con una matriz de valores

Tengo un "enlace" de matriz de objetos, los objetos tienen un campo que es otra matriz. Luego tengo una matriz "valuesAces" de cadenas

Me gustaría filtrar "enlaces" para obtener los objetos que tienen al menos uno de los valores en "valuesAces".

En el siguiente ejemplo, "linksFiltered" debe terminar siendo:

 [ {aces:['A','B']},{aces:['A','C','D']},{aces:['B']},{aces:['D','B']} ]

Ejemplo :

 let links = [ {aces:['A','B']},{aces:['A','C','D']},{aces:['B']},{aces:['D','C']},{aces:['D','B']} ] let valuesAces = ['A','B'] linksFiltered = links.filter(link => { return [...link.aces].some(ace => valuesAces.includes(ace) )})

Aparentemente estoy haciendo algo mal ya que el resultado no es el esperado. Cualquier consejo será muy apreciado.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

const links = [ {aces:['A','B']}, {aces:['A','C','D']}, {aces:['B']}, {aces:['D','C']}, {aces:['D','B']} ] const valuesAces = ['A','B'] const linksFiltered = links.filter(link => link.aces.some(ace => valuesAces.includes(ace)))
about 4 years ago · Juan Pablo Isaza Report

0

En primer lugar, te faltan comas en tus links .

 let links = [ {aces:['A','B']}, {aces:['A','C','D']}, {aces:['B']}, {aces:['D','C']}, {aces:['D','B']} ]

Entonces tenías un extra ) después de .includes(ace)))) . Debería ser:

 let valuesAces = ['A','B'] linksFiltered = links.filter(link => { return ( ([...link.aces].some(ace => valuesAces.includes(ace))) )})

¿Pero por qué pones tantos paréntesis? Este es el mismo código:

 linksFiltered = links.filter(l => l.aces.some(a => valuesAces.includes(a)))

Finalmente, para una mejor legibilidad, puede cambiarlo a:

 const inValuesAces = x => valuesAces.includes(x) linksFiltered = links.filter(l => l.aces.some(inValuesAces))
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!