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

131
Visualizações
JS ES6/ES10: cambie condicionalmente las propiedades en una matriz de objetos por otra matriz de objetos

Tengo una lista de pedidos que necesito modificar usando otra matriz de objetos:

 const orders = [ { "shippingCost": 4.23, "orderStatus": "PAID", "sid": "2AB8FDC19B0E77F738171D8E396BCEE0", "creationDate": "2021-09-13T04:17:23", "orderId": "12-07303-03670", "itemCount": 2, "multiOrders": 2, "rowNumber": 1, "merged": 1 }, { "shippingCost": 4.29 "orderStatus": "PAID", "sid": "2AB8FDC19B0E77F738171D8E396BCEE0", "creationDate": "2021-08-24T16:02:12", "orderId": "08-07513-82414", "itemCount": 2, "multiOrders": 2, "rowNumber": 2, "merged": 1 }, { "shippingCost": 6.22, "orderStatus": "PAID", "sid": "A63E0D42132D3245E8A3B0AAF00B6C3B", "creationDate": "2021-07-18T17:50:31", "orderId": "16-07301-37416", "itemCount": 4, "multiOrders": 4, "rowNumber": 1, "merged": 1 } ]; const changed=[ { "sid": "D2BD1A6E9DE4C81A3D58138FE35958A0", "orderId": "12-07303-03670", }, { "sid": "7F9DF7D3D1735BB39CED4866E28FF9F1", "orderId": "16-07301-37416", } ];

Actualmente estoy usando este algoritmo para cambiar algunos valores, pero estoy (bastante) seguro de que hay una mejor manera de hacerlo: ¿pueden sugerir un método mejor o más elegante?

 changed.forEach(i=> { let idx=orders.findIndex(o=>o.orderId==i.orderId) newData={"sid":i.sid,"rowNumber":1,"itemCount":1,"merged":0} Object.assign(this.orders[idx],newData) console.log(orders[idx]) })

Gracias

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

0

Su código está bien; Tiene que buscar el ID de pedido cada vez

Si la matriz de entrada es corta o los cambios son tempranos en la matriz original, entonces su código es más rápido que el ejemplo a continuación; si no, no:

 const orders = [ { "shippingCost": 4.23, "orderStatus": "PAID", "sid": "2AB8FDC19B0E77F738171D8E396BCEE0", "creationDate": "2021-09-13T04:17:23", "orderId": "12-07303-03670", "itemCount": 2, "multiOrders": 2, "rowNumber": 1, "merged": 1 }, { "shippingCost": 4.29, "orderStatus": "PAID", "sid": "2AB8FDC19B0E77F738171D8E396BCEE0", "creationDate": "2021-08-24T16:02:12", "orderId": "08-07513-82414", "itemCount": 2, "multiOrders": 2, "rowNumber": 2, "merged": 1 }, { "shippingCost": 6.22, "orderStatus": "PAID", "sid": "A63E0D42132D3245E8A3B0AAF00B6C3B", "creationDate": "2021-07-18T17:50:31", "orderId": "16-07301-37416", "itemCount": 4, "multiOrders": 4, "rowNumber": 1, "merged": 1 } ]; const changed=[ { "sid": "D2BD1A6E9DE4C81A3D58138FE35958A0", "orderId": "12-07303-03670", }, { "sid": "7F9DF7D3D1735BB39CED4866E28FF9F1", "orderId": "16-07301-37416", } ]; orders.forEach(item => { const change = changed.find(change => item.orderId === change.orderId); if (change) Object.assign(item, { sid:change.sid, rowNumber : 1, itemCount : 1, merged : 0}) }) console.log(orders)

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