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

217
Views
¿Cómo obtener cambios entre 2 matrices de objetos? [lodash/JS]

Ya tengo una tabla poblada con un conjunto de datos de la API. Para la demostración, digamos que ya he agregado 2 filas en la tabla que obtuve de la API. Ahora, edité la segunda fila y también agregué otra fila. Entonces, lo que quiero lograr es obtener una nueva matriz de objetos que tengan la fila que acabo de editar junto con la fila que acabo de agregar.

Las siguientes son las 2 matrices con conjuntos de datos ficticios que tengo.

Primera matriz:

 [ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 8, end: 36 }, point: 49 }, ]

Segunda matriz:

 [ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 }, { id: null, count: { start: 123, end: 2135 }, point: 323 }, ]

Observe que edité los valores de la segunda fila en Second Array . La tercera fila en la segunda matriz no tiene identificación de usuario porque la identificación de userId se devolverá del servidor después de publicarla

Rendimiento esperado:

 [ { id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 }, { id: null, count: { start: 123, end: 2135 }, point: 323 }, ]

lodash _.differencWith / _.intersectWith pero la salida usando eso fue así a continuación

 [ { id: null, count: { start: 123, end: 2135 }, point: 323 }, ]

Solo devolví la fila recién agregada en la tabla, pero ignoré que también cambié los valores en la segunda fila.

NOTA : La tabla tiene solo 3 columnas donde todas ellas son editables. coun: { start, end} y point

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Puede usar _.differenceWith ( https://lodash.com/docs/4.17.15#differenceWith )

 const first=[ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 8, end: 36 }, point: 49 }, ] const second=[ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 }, { id: null, count: { start: 123, end: 2135 }, point: 323 }, ] let result=_.differenceWith(second, first, _.isEqual) console.log(result)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

_.differenceWith :

Este método es como _.difference excepto que acepta comparador que se invoca para comparar elementos de matriz con valores. El orden y las referencias de los valores de los resultados están determinados por la primera matriz. El comparador se invoca con dos argumentos: (arrVal, othVal) .

about 4 years ago · Santiago Gelvez Report

0

 const a = [ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 8, end: 36 }, point: 49 }, ] const b = [ { id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 }, { id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 }, { id: null, count: { start: 123, end: 2135 }, point: 323 }, ]; result = _.differenceWith(b, a, _.isEqual) console.log(result); // your excpected result.
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

about 4 years ago · Santiago Gelvez 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!