Вы делаете три ошибки:
- Сначала вам нужно преобразовать число в строку.
- Вторая ошибка: вы нажимаете
x
целое число до stack
нажмите на символ с этим индексом. - Вам необходимо изначально установить
number
на ''
, а не undefined
var reverse = function(x) {
x = String(x)
var stack=[];
var number = '';
for(var i =0;i<x.length;i++){
stack.push(x[i])
}
while(stack.length >0){
number += stack.pop();
}
return +number;
};
console.log(reverse(123))
Я думаю, что лучше преобразовать число в массив строк, а затем перебрать половину массива, чтобы обратить его.И в конце концов используйте join()
var reverse = function(x) {
x = String(x).split('');
for(let i = 0;i<Math.floor(x.length/2);i++){
let temp = x[i];
x[i] = x[x.length - i - 1];
x[x.length - i - 1] = temp;
}
return x.join('')
};
console.log(reverse(123))
Приведенный выше код лучше всего подходит, если вы не хотите использовать reverse()
.С reverse()
вы можете сделать однострочник
var reverse = x => +String(x).split('').reverse().join('')
console.log(reverse(123))