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

225
Visualizações
¿Es posible en Javascript REALMENTE pasar una matriz como referencia?

¿Es posible en Javascript pasar una matriz (desde el alcance externo) a una función y mutar la matriz original?

He leído varias respuestas que mencionan que el argumento arr de f() es en realidad una copia, su nombre solo sombrea la variable de alcance externo. Otras matrices de mención siempre se pasan por referencia, pero se 'copian' (esa es una explicación confusa).

Pero si ese es el caso, ¿por qué arr[0] = 'a'; encontrar la referencia arr en el alcance externo? ¿Pero arr = ['a', 'b'] no?

Si arr = ['a', 'b'] se declaró en la función con un tipo var de ámbito de bloque ( let , const ), eso tendría más sentido.

 let a = [0,0,1,1,1,2,2,3,3,4]; function f(arr, z) { arr[0] = 'a'; arr = ['a', 'b'] }
 f(a);
 console.log(a); [ 'a', 0, 1, 1, 1, 2, 2, 3, 3, 4 ]
  1. Desde dentro de la función f() , la línea arr[0] = 'a' modifica arr en el ámbito externo

  2. Pero la referencia arr = (without a let or const`) también debería referirse al ámbito externo.

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

0

Lo primero es que las matrices siempre se pasan como referencia en javascript.

Ahora, en cuanto a su pregunta, cuando se pasa una matriz a una función, la variable de argumento de esa función contendrá esa referencia, en su caso es el argumento arr. Si muta arr, mutará la matriz original ya que se refiere a la matriz original, pero si solo asigna algún otro valor o referencia a arr, ya no mantendrá la referencia a esa matriz original y cualquier cambio en la nueva referencia no tendrá ningún efecto. en esa matriz.

about 4 years ago · Juan Pablo Isaza Relatório

0

JavaScript se pasa por valor. Sin embargo, al pasar un objeto como parámetro, el valor es la referencia.

Una matriz es un objeto. Al modificar la propiedad de un objeto, el cambio se reflejará incluso fuera del alcance de la función. Así, la modificación de un elemento (por ejemplo, una propiedad de la matriz) produce dicho efecto. Sin embargo, reemplazar el objeto solo reemplazará el valor al que apunta dicha referencia, por lo que el cambio solo se reflejará dentro del alcance de la función.

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