Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
Problema al aprender el método forEach en Javascript

Empecé a aprender Javascript desde hace una semana y trato de practicar un poco sobre el ciclo, así que trato de hacer una función que cada vez que la llamo, duplico los números en una matriz.

Me las arreglé para hacerlo con el bucle clásico "for" como este como ejemplo:

 var numbers = [2, 5, 37, 500, 75]; function getDoubled() { for (var i = 0; i < numbers.length; i++) { (numbers[i] = numbers[i] * 2); } }

Así que aquí los números en mi matriz se duplicaron cada vez que llamo a la función getDoubled(); y ahora trato de hacer lo mismo con el método forEach .

 var numbers = [2, 5, 37, 500, 75]; function getDoubled(array) { array.forEach(function(number) { (number = number * 2); }) }

Pero no pude cambiar la matriz cuando llamé a la función getDoubled(numbers) , sin embargo, si pruebo con console.log(number*2) , funcionó en la consola, así que no pude resolverlo. el error.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La reasignación de un identificador no tiene efectos secundarios. Es decir, hacer someVariable = somethingNew solo dará como resultado un cambio perceptible en la forma en que se ejecuta su secuencia de comandos si algo más hace referencia a someVariable que tiene el nuevo valor. Aquí, el number = number * 2 no hace nada porque nada hace referencia a la variable de number duplicado; reasignar el parámetro no le hace nada a la matriz.

La forma de hacer esto con forEach sería reasignar el índice en la matriz, al igual que en el bucle for .

 var numbers = [2,5,37,500,75]; function getDoubled(array) { array.forEach(function(number, i){ array[i] = number * 2; }) } getDoubled(numbers); console.log(numbers);

Alternativamente, un mejor enfoque sería construir una nueva matriz con los valores modificados, lo que se puede hacer con .map , que crea una nueva matriz realizando una devolución de llamada en cada elemento de la matriz original; de esa manera, no tiene que hacerlo. mire los índices (sin importancia) para obtener el resultado que desea.

 var numbers = [2,5,37,500,75]; function getDoubled(array) { return array.map(num => num * 2); } console.log(getDoubled(numbers));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda