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

200
Visualizações
¿Javascript que reasigna el valor de la matriz ya no hace referencia?

No estoy seguro de cómo explicar la pregunta. Sin embargo, aquí hay un código muy simple para demostrarlo.

Esperaría que testValue y testValue2 fueran [20, 21, 22], ya que se pasan por referencia y no por valor, según tengo entendido, y según parece, ya que se actualizan con .push( ) método.

¿Alguien sabe lo que está pasando aquí? ¿Por qué tanto testValue como testValue2 parecen comenzar a pasar por valor después de que reasignamos la matriz original?

 let testArray = [1, [10, 11, 12], 3, 4, 5]; let testValue = testArray; testArray.push(13); testArray = [20, 21, 22]; console.log(testArray); console.log(testValue); //Different attempt let testArray2 = [1, [10, 11, 12], 3, 4, 5]; let testValue2 = testArray2[1]; testArray2.push(13); testArray2[1] = [20, 21, 22]; console.log(testArray2); console.log(testValue2);

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

0

problema: memoria de ubicación.

crea una nueva variable testValue con testArray , estas 2 variables tienen la misma memoria de ubicación, luego usa .push() empujará el nuevo valor a la memoria de ubicación de la variable, no depende de la matriz que la use.

si no quieres que tengan la misma memoria de ubicación. utilizar este:

 // Array.from let testArray = [1, [10, 11, 12], 3, 4, 5]; let testValue = Array.from(testArray); // spread operator let testArray = [1, [10, 11, 12], 3, 4, 5]; let testValue = [...testArray];

para más detalles revisa este artículo:

  1. https://backbencher.dev/articles/javascript-variables
  2. https://medium.com/@ethannam/javascripts-memory-modelo-7c972cd2c239
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