Poznakomlus, а кто будет проверять на Number.MAX_SAFE_INTEGER? Зачем отрицательные значения обрабатываются отдельно?
function reverseNumber(value) {
let result = 0n;
while(value !== 0n) {
result = 10n * result + value % 10n;
value /= 10n;
}
return result;
}
alert(1221n === reverseNumber(1221n));
При помощи рекурсии...
function reverseNumber(value, result = 0n) {
return value === 0n ? result : reverseNumber(value / 10n, 10n * result + value % 10n);
}
alert(1221n === reverseNumber(1221n));