Answer

Answer

t.me/js_test

Ответ:

  • 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

Report Page