Функция squareDigits
Ответ:
- 1 решение (краткое)
const squareDigits2 = (num) => { return +num .toString() .split("") .map((n) => (+n) ** 2) .join(""); };
- 2 решение (развёрнутое)
const squareDigits = (num) => { let result = ""; for (const n of num.toString()) { result += Number(n) ** 2; } return Number(result); };
Объяснение:
В каждом из решений нужно перевести число в строку и перебрать все символы. В кратком решении нужно ещё и разбить строку на массив, чтобы использовать метод map
. На каждой итерации нужно обратно переводить каждый символ в число, возводить в квадрат и прибавлять к аккумулирующему значению. Ну и последним этапом нужно перевести получившуюся строку обратно в число и вернуть.
Код для проверки:
const squareDigits = (num) => { let result = ""; for (const n of num.toString()) { result += Number(n) ** 2; } return Number(result); }; const squareDigits2 = (num) => { return +num .toString() .split("") .map((n) => (+n) ** 2) .join(""); }; console.log(squareDigits(91)); // 811 console.log(squareDigits(0)); // 0 console.log(squareDigits(867)); // 643649 console.log(squareDigits2(91)); // 811 console.log(squareDigits2(0)); // 0 console.log(squareDigits2(867)); // 643649