Мое решение, но не работает для последнего кейса. Проблемы появляются, если нули встречаются в середине числа. Что можно с этим сделать?
const reverseNumber = num => {
const str = (Math.abs(num)).toString()
let res = ''
const isNegative = num < 0
for (let i = 0; i < str.length; i++){
const char = str[i]
if (char !== '0') res = char + res
else if (char === '0' && str[i + 1] && str[i + 1] !== '0') res = char + res
}
return Number(isNegative ? res * -1 : res)
}
console.log(reverseNumber(-456)) // -654
console.log(reverseNumber(1000)) // 1
console.log(reverseNumber(901)) // 109
console.log(reverseNumber(50078)) // 87005