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

101
Visualizações
¿Cómo puedo agregar un elemento de matriz en otra matriz?

¿Cómo agrego un valor de una matriz a otra matriz para crear una nueva matriz?

Tengo dos matrices y quiero filtrar a través de arrayTwo find where id === productID from arrayOne . Luego agregue la quantity de arrayOne a arrayTwo para que pueda obtener un resultado como arrayThree

 arrayOne = [ { productID: "DuWTLdYkpwF1DJ2x8SGB", quantity: 2 }, ]
 arrayTwo = [ { id: "DuWTLdYkpwF1DJ2x8SGB", minQuantity: 1, name: "5 Shade Palette", price: "950", size: "30g", unitPrice: 950, }, ]

Resultado buscado::

 arrayThree = [ { id: "DuWTLdYkpwF1DJ2x8SGB", minQuantity: 1, name: "5 Shade Palette", price: "950", size: "30g", unitPrice: 950, quantity: 2, }, ]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puede fusionar los dos objetos fácilmente usando el operador de extensión:

 arrayOne = [ { productID: "DuWTLdYkpwF1DJ2x8SGB", quantity: 2 }, ] arrayTwo = [ { id: "DuWTLdYkpwF1DJ2x8SGB", minQuantity: 1, name: "5 Shade Palette", price: "950", size: "30g", unitPrice: 950, }, ] console.log({...arrayOne[0], ...arrayTwo[0]})

Use esto en combinación con su filtro inicial y debería tener lo que desea. Sin embargo, recomendaría usar 'find()' en su lugar.

Esto se verá algo como esto:

 // Loop every item of one array arrayOne.forEach( (product) => { // Find linked product let productToMerge = arrayTwo.find(p => p.productID === product.productID) // Let's merge them let newItem = {...product, ...productToMerge} })

Ahora solo es cuestión de empujar este elemento nuevo en una matriz para recopilar todos los elementos nuevos.

Untado

Encontrar

about 4 years ago · Juan Pablo Isaza Relatório

0

La complejidad del tiempo es O (n ^ 2) aquí. Si las matrices dadas son realmente largas, no es la mejor opción. Básicamente: para cada elemento en arrayOne , encuentre su par en arrayTwo y combínelos.

 let arrayThree = arrayOne.map(first => { return { ...first, ...arrayTwo.find(second => second.id == first.productID) } });
about 4 years ago · Juan Pablo Isaza Relatório

0

A continuación se muestra una forma posible de lograr el objetivo.

Fragmento de código

 // add "quantity" to existing products const addDeltaToBase = (delta, base) => ( // iterate over the "base" (ie, existing product array) base.map( ({ id, ...rest }) => { // de-structure to access "id" // check if "id" is part of the delta (to update "quantity") const foundIt = delta.find(({ productID }) => productID === id); if (foundIt) { // found a match, so update "quantity return ({ id, ...rest, quantity: foundIt.quantity }) }; // control reaches here only when no match. Return existing data as-is return { id, ...rest } } ) // implicit return from "base.map()" ); const arrayOne = [ { productID: "DuWTLdYkpwF1DJ2x8SGB", quantity: 2 }, ]; const arrayTwo = [ { id: "DuWTLdYkpwF1DJ2x8SGB", minQuantity: 1, name: "5 Shade Palette", price: "950", size: "30g", unitPrice: 950, }, ]; console.log(addDeltaToBase(arrayOne, arrayTwo));
 .as-console-wrapper { max-height: 100% !important; top: 0 }

Explicación

Comentarios en línea agregados en el fragmento anterior.

NOTA

  • Esta respuesta podrá manejar tanto arrayOne como arrayTwo con múltiples objetos.
  • Hace coincidir productId con id y, cuando coincide, fusiona la quantity en la salida (es decir, arrayThree ).
  • Su objetivo es ser inmutable, por lo que las matrices de entrada pueden permanecer como están.
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