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
¿Cuál es el punto de difundir operaror en JavaScript especialmente en este ejemplo?

Estoy estudiando ahora en FreeCodeCamp , y aquí hay un desafío:

"Hemos definido una función, copyMachine, que toma arr (una matriz) y num (un número) como argumentos. Se supone que la función devolverá una nueva matriz formada por num copias de arr. Hemos hecho la mayor parte del trabajo por usted , pero aún no funciona del todo bien. Modifique la función usando la sintaxis extendida para que funcione correctamente (pista: ¡otro método que ya hemos cubierto podría ser útil aquí!)".

Y aquí hay una solución:

 function copyMachine(arr, num) { let newArr = []; while (num >= 1) { // Only change code below this line newArr.push([...arr]) // Only change code above this line num--; } return newArr; } console.log(copyMachine([true, false, true], 2));

¿Qué sentido tiene agregar corchetes y puntos adicionales (...) si pudiera agregar newArr.push(arr) en su lugar y obtener el mismo resultado? El resultado es: [ [ true, false, true ], [ true, false, true ] ]

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

0

Es el tema de la referencia.

Al usar esta sintaxis newArr.push(arr) arr está insertando la matriz original del argumento, por lo que siempre que la matriz cambie su contenido, las matrices dentro de newArr también se actualizarán, ya que siempre es la misma matriz.

Cuando usa la sintaxis extendida, en realidad está enviando una copia de ese arr . Esto significa que es una nueva matriz que no está vinculada a la matriz que pasa a una función

Considera esto

 function copyMachine(arr, num) { let newArr = []; while (num >= 1) { // Only change code below this line newArr.push(arr) // Only change code above this line num--; } return newArr; } const oldArr = [true, false, true]; const newArr = copyMachine(oldArr, 2); oldArr.push(true); console.log(newArr); // contains an element added to the old array

about 4 years ago · Juan Pablo Isaza Relatório

0

La sintaxis extendida (...) permite que un iterable, como una expresión de matriz o una cadena, se expanda en lugares donde se esperan cero o más argumentos (para llamadas a funciones) o elementos (para literales de matriz), o se expande una expresión de objeto en lugares donde se esperan cero o más pares clave-valor (para objetos literales).

En el código provisto, el operador de propagación se usa para crear una nueva matriz usando los elementos de la matriz llamada arr y luego insertarla en newArr .

Esto es similar a hacer newArr.push(arr);

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