Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

172
Visualizações
Filtrar matriz de diccionarios con matriz de diccionarios

Tengo dos conjuntos de diccionarios, ambos contienen una propiedad de ID, uno es 'id' y el otro es '_id'.

Estoy tratando de filtrar una matriz que contiene todos los libros disponibles y obtener datos de ella en función de los libros que tiene un usuario.

 const books = allbooks.filter(({ id }) => userBooks.findIndex((book) => book._id === id) )

Este es el código que estoy usando en este momento, pero no está haciendo lo que esperaba.

Cómo se ven los datos

 allbooks [ { id: 1, name: 'Book 1' }, { id: 2, name: 'Book 2' } ] userBooks [ { _id: 1 } ]

¿Debo crear una matriz a partir de los _ids de la segunda matriz y filtrar con eso? Estoy tratando de encontrar la mejor manera de hacer esto, estoy usando matrices de diccionarios y a veces me resulta difícil.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Eres tan cercano mi amigo. El problema es que Array.prototype.findIndex devuelve el primer índice en el que su función lambda devuelve verdadero. El índice del libro coincidente es el índice 0, que es falso , lo que hace que su filtro lo ignore porque el resultado de la función de filtro lambda es falso.

En su lugar, puede verificar si el resultado de su findIndex es> -1 ya que Array.prototype.findIndex devuelve -1 si no se encuentra el elemento.

 const allbooks = [ { id: 1, name: 'Book 1' }, { id: 2, name: 'Book 2' } ]; const userBooks = [ { _id: 1 } ]; const books = allbooks.filter(({ id }) => userBooks.findIndex((book) => book._id === id) > -1 ) console.log(books);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda