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

369
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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