Soy muy nuevo en JavaScript y sigo aprendiendo los fundamentos. Estaba completando un desafío de JavaScript donde necesitaba elevar al cuadrado cada número, por ejemplo. 881 se convierte en 64641. Mi código está debajo del cual estoy contento, pero me las arreglé para confundirme al pensar demasiado.
Cuando hago numArray[i] * numArray[i] , ya que son ambas cadenas, JavaScript se convierte automáticamente en un número para que los números se cuadren. ¿Lo convirtió en un número, elevó el número al cuadrado y luego volvió a convertirse en una cadena nuevamente? Por eso tengo que hacer Number(squareArray.join(''));
La razón por la que pregunto es que sé que si haces una cadena * número, se convierte en un número, lo haría si sucediera algo similar. Si me equivoco por favor que alguien me explique para que pueda entender.
let numArray = num.toString(); //turn number to a string let squareArray = []; // create an array to save the new values of the string for (let i = 0; i < numArray.length; i++) { // iterate through the string squareArray[i] = numArray[i] * numArray[i]; // save the square of the number to the array } return Number(squareArray.join('')); // turn the array into a string and then into a number}Pocas observaciones :
Sugerencia : use Array.map() para obtener el cuadrado de cada número.
Demostración de trabajo:
let numArray = [1,2,3,4,5]; const squareArray = numArray.map(item => item * item); console.log(Number(squareArray.join('')));