[英]How to reverse a negative Number in JavaScript?
我试图以这种方式获得 output,不幸的是,它没有返回预期值......
function reverseInt(int){ let intRev =""; for(let i= 0; i<int.length; i++){ intRev = int[i]+intRev; } return intRev; } console.log(reverseInt("-12345"));
用
function reverseInt(n) {
return Math.sign(n)*parseInt(n.toString().split('').reverse().join(''));
}
您的基本逻辑是正确的,但您需要处理正整数和负整数输入之间的差异。 在后者的情况下,您希望开始在第二个字符上构建反转字符串。 此外,当返回反转的负数字符串时,您还需要在前面加上一个负号。
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"));
编辑:一些答案正在使用基本字符串反转功能。 但是,这个答案试图用您的原始方法解决问题。
希望它会返回您期望的输出。
function reverseInt(int){ const intRev = int.toString().split('').reverse().join(''); return parseInt(intRev) * Math.sign(int); } alert(reverseInt("-12345"));
function reverseInt(number){ let intRev =""; let len=number.toString().length; for(let i=len i>0; i--){ intRev =intRev + int[i]; } return intRev; }
这将为您提供您通过的数字的相反数
跳过减号并将其添加到最后以获得类似 -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"));
一个简短的小功能,可以完成这项工作:)
享受
function reverseInt(int){ const sign = int.match('-') ? '-' : ''; return sign + Math.abs(int).toString().split('').reverse().join(''); } console.log(reverseInt("-12345"));
如果您想使用纯数学解决方案,那么它应该是这样的:
从数字中删除最后一位数字并将其附加到反向数字变量的末尾,直到原始数字消失并且反向数字完成。
代码:
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;
};
这可能有点矫枉过正,但是这里是我反转 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))
function reverseInt(n) { const isNegativeNumber = Boolean(n < 0) const reversedStringifiedNumber = n.toString().split('').reverse().join('') return parseInt(`${isNegativeNumber? '-': ''}${reversedStringifiedNumber}`) } console.log(reverseInt(1234)) console.log(reverseInt(-1234)) console.log(reverseInt(0)) console.log(reverseInt(-0))
对于负/非负整数(不是字符串),这将起作用。
const reverseInteger = (int) => {
let reversed = '';
let sign = int < 0 ? 1 : 0;
let convertIntToString = int.toString();
for (let i = sign; i < convertIntToString.length; i++) {
reversed = parseInt(convertIntToString[i] + reversed);
//parseInt to convert to integer, doing this to mostly remove
//leading zeros
}
return int < 0 ? "-" + reversed : reversed;
};
console.log(reverseInteger(789));
console.log(reverseInteger(-51989000));
这是正整数和负整数的解决方案
function reverseInteger(num){
let isNegative = false;
let integerString = String(num)
if (Math.sign(num) === -1) {
isNegative = true;
integerString = integerString.replaceAll("-", "");
}
const reversedStringArray = String(integerString).split("").reverse("");
const result = reversedStringArray.toString().replaceAll(",", "");
return isNegative ? Number(`-${result}`) : Number(result);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.