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

275
Visualizações
Búsqueda de JavaScript: actualice el valor del objeto en la matriz si la clave del objeto existe en otra matriz de objetos similar a la búsqueda en v en Excel

Solo trato de actualizar las fechas en array2 si la ID coincide en array1 para que no sean nulas.

 let array1 = [{"id":1, "date": "23/11/21"}, {"id":2, "date":"20/11/21"}, {"id":3, "date":"15/11/21"}] let array2 = [{"id":1, "name": "John", "date": null}, {"id":2, "name": "Max", "date": null}, {"id":3, "name": "Peter", "date": null}]

Salida deseada:

 let array2 = [{"id":1, "name": "John", "date":"23/11/21" }, {"id":2, "name": "Max", "date": "20/11/21"}, {"id":3, "name": "Peter", "date": "15/11/21"}]

¿Cómo uso un bucle con el método indexof()?

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

0

Puede usar un método de map para iterar a través de la segunda matriz, encontrar un elemento con la misma id en la primera matriz y tomar la fecha desde allí:

 let array1 = [{ "id": 1, "date": "23/11/21" }, { "id": 2, "date": "20/11/21" }, { "id": 3, "date": "22/11/15" }] let array2 = [{ "id": 1, "name": "John", "date": null }, { "id": 2, "name": "Max", "date": null }, { "id": 3, "name": "Peter", "date": null }]; const updated = array2.map(el => { const isIdInFirstArr = array1.find(e => e.id === el.id); if (isIdInFirstArr) { el.date = isIdInFirstArr.date; } return el; }) console.log(updated)

about 4 years ago · Juan Pablo Isaza Relatório

0

1) Puede lograr esto de manera eficiente usando Map como:

 let array1 = [ { id: 1, date: "23/11/21" }, { id: 2, date: "20/11/21" }, { id: 3, date: "15/11/21" }, ]; let array2 = [ { id: 1, name: "John", date: null }, { id: 2, name: "Max", date: null }, { id: 3, name: "Peter", date: null }, ]; const map = new Map(); array1.forEach((o) => map.set(o.id, o.date)); let result = array2.map((o) => ({ ...o, date: o.date ?? map.get(o.id) })); console.log(result);
 /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

2) Puede lograr fácilmente el resultado usando el map y find

 let array1 = [ { id: 1, date: "23/11/21" }, { id: 2, date: "20/11/21" }, { id: 3, date: "15/11/21" }, ]; let array2 = [ { id: 1, name: "John", date: null }, { id: 2, name: "Max", date: null }, { id: 3, name: "Peter", date: null }, ]; let result = array2.map(o => ({ ...o, date: o.date ?? array1.find(obj => obj.id === o.id)?.date})); console.log(result)
 /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

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