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

214
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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