我需要用JavaScript反转一个数字,但是我不知道为什么下面的代码进入无限循环。
var num=1234;
var reverse=0;
while(num!=0) {
reverse=reverse*10;
reverse=reverse+(num%10);
num=num/10;
}
console.log(reverse);
我希望输出4321,但是实际输出是无限循环
答案 0 :(得分:2)
操作num = num / 10
必须是整数除法(否则num
将花费很长时间才能变为0)。使用Math.trunc
去除任何小数部分:
num=Math.trunc(num/10);
相反:
var num = 1234;
var reverse = 0;
while(num !== 0){
reverse = reverse*10;
reverse = reverse+(num%10);
num = Math.trunc(num/10);
}
console.log(reverse);
答案 1 :(得分:1)
答案 2 :(得分:1)
其他方法:
var num = 1234
, rev = 0
do {
rev = (rev*10) + (num%10)
} while (num = Math.trunc(num/10))
console.log(rev)
答案 3 :(得分:0)
您可以简单地使用Math.trunc(x)从除法结果中提取整数。否则您也可以使用以下方法。
另一种方法
var num = 1234;
var reverse = 0;
var final = 0;
while(num !== 0){
reverse = num%10;
num = parseInt(num/10);
console.log(reverse);
if(final! = '0'){
final = final.toString().concat(reverse);
}else {
final = reverse;
}
}
console.log(final);
否则,您甚至可以做类似的事情;
var num = 1234;
var reverse = num.toString().length;
var res = num.toString().charAt(1);
var final = "";
for(var i = reverse; i >= 0; i--){
console.log(num.toString().charAt(i));
final = final.concat(num.toString().charAt(i))
}
console.log(final);