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

367
Vistas
Función de JavaScript para multiplicar por dos cada elemento de una matriz

Quiero que alguien revise mi código y me diga qué hice mal. Quiero una función que reciba una matriz de números como parámetro y devuelva una nueva matriz con cada elemento multiplicado por dos.

 function duplicate(arr) { let numDouble = arr; for (let i = 0; i < arr.length; i++) { if (arr[i] != 0) { Total = numDouble * 2; } } return numDouble; } const arr = [1,2,3,4,5] console.log(duplicate(arr))

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Depurar

Su solución no funcionaba porque no estaba asignando el nuevo valor a la matriz

Funcionará si usa el siguiente código para hacer esto:

 numDouble[i] = numDouble[i] * 2;

Por cierto, no es necesario verificar si el valor es 0 porque 0 * 2 sigue siendo igual a 0, lo que funciona perfectamente. por lo que podría haber eliminado la parte if(arr[i]!=0) .

Además, cuando estés haciendo let numDouble = arr; no está creando una nueva matriz sino asignando la referencia de matriz existente a la variable.

Si desea crear una nueva matriz, puede usar el operador de propagación que se usa, por ejemplo, para duplicar la matriz.

Ejemplo: let numDouble = [...arr];

Habrías comprobado si había alguna división que pudiera causar algún problema

Ejemplo :

 function duplicate(arr) { let numDouble = [...arr]; for (let i = 0; i < arr.length; i++) { numDouble[i] = numDouble[i] * 2; } return numDouble; } const arr = [1, 2, 3, 4] const newArr = duplicate(arr) console.log(newArr)


Otra solución

Otra solución que podría funcionar mejor es la función de map que toma una función y la aplica a cada elemento de la matriz.

Entonces, por ejemplo, podrías hacer esto:

 const arr = [1, 2, 3, 4] const multiplyByTwo = function(number) { return number * 2 } console.log(arr.map(multiplyByTwo))

O incluso con una línea de código usando funciones de flecha:

 const arr = [1,2,3,4] console.log(arr.map(x => x*2))

about 4 years ago · Santiago Trujillo Denunciar

0

Hay un par de errores en su código, que se describen a continuación:


let numDouble = arr;

Esto no crea una nueva matriz. En su lugar, crea una nueva referencia a la misma matriz. Esto significa que cuando modificas numDouble también estás modificando arr


if(arr[i]!=0)

No estoy seguro de qué está tratando de hacer con esta condición, pero es innecesario ya que 2 * 0 = 0 de todos modos. ¿A menos que desee excluir el valor 0 de la matriz final?


Total = numDouble * 2;

La variable Total no está definida. También en javascript, la convención es usar camelCase para nombres de variables.

Además numDouble es una matriz aquí, no puede usar el operador de multiplicación. numDouble * 2 se evalúa como NaN


Posible implementación

Una posible implementación para su función sería:

 function duplicate(arr) { const doubleNum = [] for (let i = 0; i < arr.length; i++) { doubleNum.push(2 * arr[i]) } return doubleNum } const arr = [1,2,3,4] console.log(duplicate(arr))

Aunque en la vida real, simplemente usaríamos el mapa así:

const numDouble = arr.map(i => 2*i)

about 4 years ago · Santiago Trujillo Denunciar

0

 var a=[2,1,5]; function duplicate(arr){ var Total=[]; for(let i = 0; i < arr.length; i++){ if(arr[i]!=0){ Total.push(arr[i] * 2); } } console.log(Total) return Total; } duplicate(a);

puedes usar el método push() . agrega uno o más elementos al final de una matriz

about 4 years ago · Santiago Trujillo 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