不幸的是,我试图以这种方式获得输出,但是它没有返回期望值...
function reverseInt(int){
let intRev ="";
for(let i= 0; i<int.length; i++){
intRev = int[i]+intRev ;
}
return intRev ;
}
console.log(reverseInt("-12345"));
答案 0 :(得分:11)
使用
BEGIN
答案 1 :(得分:4)
您的基本逻辑是正确的,但是您需要处理正整数输入和负整数输入之间的差异。对于后者,您想开始在 second 字符上构建反向字符串。另外,在返回反向的负数字符串时,还需要在前面加上一个负号。
function reverseInt(int){
let intRev = "";
let start = int < 0 ? 1 : 0;
for (let i=start; i<int.length; i++) {
intRev = int[i] + intRev;
}
return int < 0 ? '-' + intRev : intRev;
}
console.log("12345 in reverse is: " + reverseInt("12345"));
console.log("-12345 in reverse is: " + reverseInt("-12345"));
编辑:一些答案正在使用基本字符串反转功能。但是,此答案可以解决您使用原始方法的问题。
答案 2 :(得分:1)
希望它会返回您期望的输出。
function reverseInt(int){
const intRev = int.toString().split('').reverse().join('');
return parseInt(intRev) * Math.sign(int);
}
alert(reverseInt("-12345"));
答案 3 :(得分:0)
function reverseInt(number){
let intRev ="";
let len=number.toString().length;
for(let i=len i>0; i--){
intRev =intRev + int[i];
}
return intRev;
}
这将为您提供与您通过的号码相反的密码
答案 4 :(得分:0)
跳过减号并最后加上它,得到的结果是-54321。
示例:
function reverseInt(int){
let intRev ="";
for(let i= 1; i<int.length; i++){
intRev = int[i]+intRev ;
}
intRev ='-'+intRev;
return intRev ;
}
console.log(reverseInt("-12345"));
答案 5 :(得分:0)
一个简短的小功能:)
享受
function reverseInt(int){
const sign = int.match('-') ? '-' : '';
return sign + Math.abs(int).toString().split('').reverse().join('');
}
console.log(reverseInt("-12345"));
答案 6 :(得分:0)
如果要使用纯数学解决方案,则应该是这样的:
从数字中删除最后一位数字,并将其附加到末尾 反转数字变量,直到原始数字消失并且 倒数完成。
代码:
var reverse = function(x) {
let reverse = 0;
let sign = Math.sign(x);
if (sign === -1) {
x = x*sign;
}
while (x > 0) {
reverse = (reverse * 10) + (x%10);
x = parseInt(x/10, 10);
}
return reverse * sign;
};
答案 7 :(得分:0)
这可能有点矫枉过正,但这里是我反转 int 的方法。
将参数转换为字符串,使用字符串反向函数并加入数组。为了检查参数是正数还是负数,我们检查从 Math.sign() 返回的内容。有一些快捷方式可以将反向项转换回 int。这可以扩展为检查 int 是否为 0,例如,它不是防弹的。 .
function reverse(int){
let r = (Math.sign(int) > 0) ? +[...Array.from(int.toString()).reverse()].join('') : -Math.abs([...Array.from(int.toString()).reverse()].join('').replace('-',''));
return r
}
console.log(reverse(-123))