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

204
Visualizações
Javascript: agregar objetos a la matriz con una identificación coincidente

Tengo una matriz de categories que tiene el id de valor que estoy tratando de hacer coincidir con mis articles de matriz

Si los articles tienen una identificación coincidente con una de las categories que me gustaría combinarlos en una matriz. Puedo agregar estos objetos a la matriz, pero no coinciden según la identificación.

Aquí hay un ejemplo de categorías:

 const categories = [{results: { "id": 28, "name": "Articles" }, { "id": 76, "name": "Projects" } }]

Aquí hay un ejemplo de artículos:

 const articles = [ { "title": "first article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "second article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "thirdarticle", "content": "lorem ipsum", "categoryId": 76 }, ]

Estoy intentando combinar las dos matrices en una. Si es posible, me gustaría que la matriz de articles sea una matriz en ese índice coincidente. Por ejemplo:

 const combined = [ { "id": 28, "name": "Articles", "articles:: [ { "title": "first article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "second article", "content": "lorem ipsum", "categoryId": 28 }, ], }, ];

Intenté hacer esto mapeando categorías y usando Object.assign . Los resultados de salida parecen combinar matrices, pero creo que todas están combinadas y no coinciden con la identificación.

¿Cómo puedo lograr esto?

 const articles = [ { "title": "first article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "second article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "thirdarticle", "content": "lorem ipsum", "categoryId": 76 }, ] const categories = {results: [{ "id": 28, "name": "Articles"}, {"id": 76, "name": "Projects"}]} let combined = categories.results.map((item, i ) => Object.assign(item, articles)); console.log(combined)

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

0

Aquí hay una forma de llegar usando su código pero filtrando artículos coincidentes y usando el operador de spread

 let combined = categories.results.map(item => ({ ...item, articles: articles.filter(f => f.categoryId == item.id) })); 

 const articles = [{ "title": "first article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "second article", "content": "lorem ipsum", "categoryId": 28 }, { "title": "thirdarticle", "content": "lorem ipsum", "categoryId": 76 }, ] const categories = { results: [{ "id": 28, "name": "Articles" }, { "id": 76, "name": "Projects" }] } let combined = categories.results.map(item => ({ ...item, articles: articles.filter(f => f.categoryId == item.id) })); console.log(combined)

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