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

110
Visualizações
Reaccionar en bucle y crear una nueva matriz con objetos anidados

Tengo una serie de documentos:

 [{ "name": "AAPL", "ownerTotals": {uid: "xxx", totaledAmount: 140 }, {uid: "yyy", totaledAmount: 10} }, { "name": "TSLA", "ownerTotals": {uid: "xxx", totaledAmount: 11 }, {uid: "yyy", totaledAmount: 2} }]

y una serie de propietarios:

 {uid: "xxx"}, {uid: "yyy"}

Estoy tratando de crear un nuevo/(actualizar) el objeto de los propietarios con un objeto anidado que contiene las posiciones que poseen. entonces quiero actualizar los propietarios a este formato:

 [{uid: "xxx", "positions": [{name: "AAPL", totaledAmount: 140 },{name: "TSLA", totaledAmount: 11}] }, {uid: "yyy", "positions": [{name: "AAPL", totaledAmount: 10 },{name: "TSLA", totaledAmount: 2}] }]

¿Cuál es la mejor manera de lograr esto?

Yo estaba tratando de algo a lo largo de las líneas de

 owners.forEach((owner) => { documents.forEach((document) => { document.ownerTotals.forEach((ownerTotal) => { if (ownerTotal.uid === owner.uid) { } } }) } })

No estoy realmente seguro de qué hacer en el corazón de cada ciclo, y ni siquiera estoy seguro de si ForEach es la forma más metódica para esto... Estoy usando reacción moderna con ganchos.

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

0

Puedes hacer algo como esto:

 const documents = [ { name: "AAPL", ownerTotals: [ { uid: "xxx", totaledAmount: 140 }, { uid: "yyy", totaledAmount: 10 } ] }, { name: "TSLA", ownerTotals: [ { uid: "xxx", totaledAmount: 11 }, { uid: "yyy", totaledAmount: 2 } ] } ]; const owners = [{ uid: "xxx" }, { uid: "yyy" }]; const res = owners.map(({ uid }) => { let ownedDocuments = []; documents.forEach((doc) => { let docFound = doc.ownerTotals.find(({ uid: docUid }) => docUid === uid); if (docFound) { ownedDocuments.push({ name: doc.name, totaledAmount: docFound.totaledAmount }); } }); return { uid, positions: ownedDocuments }; }); console.log(res);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar reduce para agrupar posiciones por ID de userid .

 const positions = [{ "name": "AAPL", "ownerTotals": {uid: "xxx", totaledAmount: 140 }, {uid: "yyy", totaledAmount: 10} }, { "name": "TSLA", "ownerTotals": {uid: "xxx", totaledAmount: 11 }, {uid: "yyy", totaledAmount: 2} }] const posByUid = positions.reduce((acc, current) => { const name = current.name current.positions.forEach(position => { if (!acc[position.uid]) { acc[position.uid] = [] } acc[position.uid] = {name, totaledAmount: position.totaledAmount} }) return acc }, {})
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