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

243
Visualizações
Obtenga confusión al usar el método "Array. Map" en JavaScript

mi código es:

 let obj1 = [ { city: 'Tokyo', country: 'Japan' }, { city: 'Bangkok', country: 'Thailand'} ]; function myFunc(arr, key, value){ let newArr = arr.map((e)=>{ let obj = e; obj[key] = value; return obj; }) return newArr } console.log(myFunc(obj1, 'continent', 'Asia')); console.log(obj1);

No quiero mutar la matriz "obj1". Es por eso que estoy usando el método Array.map. Pero sigue cambiando la matriz original. ¿Alguien sabe por qué sucede esto? ¿Dónde cometí el error?

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

0

Podrías tomar un objeto nuevo y esparcir el viejo.

 function myFunc(arr, key, value){ return arr.map(e => ({ ...e, [key]: value })); } let obj1 = [{ city: 'Tokyo', country: 'Japan' }, { city: 'Bangkok', country: 'Thailand'}]; console.log(myFunc(obj1, 'continent', 'Asia')); console.log(obj1);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Pensó que usar el operador igual copiaría cada objeto en la matriz para que no mute el objeto

 let obj = e;

pero lo que tiene en el código es otra referencia a los mismos elementos en la matriz.

el map en sí no es una garantía de que tenga una estructura de datos inmutable, debe copiar correctamente los datos, para los objetos en js puede usar Object.assign o el operador de spread operater

 let obj = { ...e }; // or let obj = Object.assign({}, e);
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