Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

115
Views
JavaScript compara dos matrices y envía elementos a la primera matriz que tienen el mismo valor de propiedad en la segunda matriz

Tengo dos matrices y quiero enviar los valores de la segunda matriz que tiene el mismo valor de propiedad. Comparando los valores usando la propiedad addrSeq e insertando el objeto coincidente en la matriz vpainfo

A continuación se muestra la estructura JSON de muestra,

Matriz1 :

 [ { "addrSeq": "12", "accountMask": "********7479", "vpainfo": [] }, { "addrSeq": "13", "accountMask": "********74", "vpainfo": [] } ]

Matriz2:

 [ { "addrSeq": "12", "vpa": "saasasa@fff" }, { "addrSeq": "12", "vpa": "xyz@com" }, { "addrSeq": "13", "vpa": "saas@ddd" } ]
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

solo necesita aprender javascript, aquí está el resultado, mire esto, solo almaceno ambos en una matriz, y luego ejecute el bucle y haga coincidir y empuje en uno.

 let firstarray =[ { "addrSeq": "12", "accountMask": "********7479", "vpainfo": [] }, { "addrSeq": "13", "accountMask": "********74", "vpainfo": [] } ] let secondarray = [ { "addrSeq": "12", "vpa": "saasasa@fff" }, { "addrSeq": "12", "vpa": "xyz@com" }, { "addrSeq": "13", "vpa": "saas@ddd" } ] // merge both array into one using addrSeq match value let mergedarray = firstarray.map(function(item) { secondarray.map(function(item2) { if (item.addrSeq == item2.addrSeq) { item.vpainfo.push(item2); } }); return item; }); console.log(mergedarray);
about 4 years ago · Juan Pablo Isaza Report

0

Puede lograrlo a través de un bucle forEach simple.

demostración:

 const array1 = [ { "addrSeq": "12", "accountMask": "********7479", "vpainfo": [] }, { "addrSeq": "13", "accountMask": "********74", "vpainfo": [] } ]; const array2 = [ { "addrSeq": "12", "vpa": "saasasa@fff" }, { "addrSeq": "12", "vpa": "xyz@com" }, { "addrSeq": "13", "vpa": "saas@ddd" } ]; array2.forEach((obj) => { array1.forEach((array1Obj) => { if (obj.addrSeq === array1Obj.addrSeq) { array1Obj.vpainfo.push(obj.vpa) } }); }); console.log(array1);

about 4 years ago · Juan Pablo Isaza Report

0

Suponiendo que el OP requiere que Array1 se actualice de modo que la matriz vpaIinfo de cada objeto se actualice en función de los datos en Array2 , la siguiente solución puede ser una forma posible de lograr el objetivo deseado.

Fragmento de código

 const getUpdatedArr = (ar1, ar2) => ( ar1.map( obj => ({ ...obj, vpainfo: [ ...obj.vpainfo, ...ar2.filter( ({addrSeq}) => (obj.addrSeq === addrSeq) ).map( ({vpa}) => vpa ) ] }) ) ); const arr1 = [ { "addrSeq": "12", "accountMask": "********7479", "vpainfo": [] }, { "addrSeq": "13", "accountMask": "********74", "vpainfo": [] } ]; const arr2 = [ { "addrSeq": "12", "vpa": "saasasa@fff" }, { "addrSeq": "12", "vpa": "xyz@com" }, { "addrSeq": "13", "vpa": "saas@ddd" } ]; console.log(getUpdatedArr(arr1, arr2));

Explicación

  • Iterar sobre array-1 usando .map()
  • Para cada objeto, mantenga el resto de los accesorios como están y manipule solo vpainfo
  • Conservar cualquier valor existente en vpainfo actual (usando ...obj.vpainfo )
  • Agregue a esto, cualquier vpa relevante que se encuentre en array-2
  • Lo anterior se logra usando .filter() para retener solo aquellos con el mismo addrSeq -Y- luego, usando .map() para extraer solo el vpa prop (usando la desestructuración)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!