Затрудняюсь решить вопрос из задачника js [как проводить математические операции над цифрами числа?]

Программирование во многом - разбивание задачи на части и потом сочетание этих частей вместе. Части должны быть желательно незавимимыми.

В этой задаче есть явно выделяемая часть - поиск суммы квадратов цифр. Напиши отдельную функцию, которая получает на вход число, и возвращает сумму квадратов цифр.

function getNumSquaresSum(num) {

}

Допустим она есть, тогда алгоритм выглядит так:

function isLucky(num) {
	let occuredNumbers = {} // тут будем запоминать повторяющиеся суммы квадратов цифр
	while (true) { // Бесконечный цикл. Условие выхода из цикла прописаны в теле самого цикла как return
		let sum = getNumSquaresSum(num)
		if (sum === 1) {
			return true
		} else {
			// на какой-то итерации в occuredNumbers[sum] уже было записано значение суммы
			// квадратов цифр, значит число - "несчастливое"
			if (occuredNumbers[sum]) {
				return false
			}
			occuredNumbers[sum] = true
			num = sum
		}
	}
}