Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中反转负数?_Javascript_Loops_For Loop_Foreach - Fatal编程技术网

如何在JavaScript中反转负数?

如何在JavaScript中反转负数?,javascript,loops,for-loop,foreach,Javascript,Loops,For Loop,Foreach,我试图以这种方式获得输出,不幸的是,它没有返回预期值 函数反向输入(int){ 让intRev=“”; 对于(设i=0;i),您的基本逻辑是正确的,但您需要处理正整数输入和负整数输入之间的差异。对于负整数输入,您需要在第二个字符上开始构建反转字符串。此外,在返回反转负数字符串时,还需要预加负号 函数反向输入(int){ 让intRev=“”; 让start=int0;i--){ intRev=intRev+int[i]; } 返回intRev; }跳过减号,最后加上它,得到类似-54321的

我试图以这种方式获得输出,不幸的是,它没有返回预期值

函数反向输入(int){
让intRev=“”;

对于(设i=0;i),您的基本逻辑是正确的,但您需要处理正整数输入和负整数输入之间的差异。对于负整数输入,您需要在第二个字符上开始构建反转字符串。此外,在返回反转负数字符串时,还需要预加负号

函数反向输入(int){
让intRev=“”;
让start=int<0?1:0;
对于(让我=开始;我使用

功能反转(编号){
让intRev=“”;
设len=number.toString().length;
对于(设i=leni>0;i--){
intRev=intRev+int[i];
}
返回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"));
函数反向输入(int){
让intRev=“”;

对于(设i=1;i一个完成此任务的简短函数:)

享受

函数反向输入(int){
常量符号=int.match('-')?'-':'';
返回符号+Math.abs(int).toString().split(“”).reverse().join(“”);
}

log(reverseInt(“-12345”);
希望它将返回您期望的输出

函数反向输入(int){
const intRev=int.toString().split(“”).reverse().join(“”);
返回parseInt(intRev)*数学符号(int);
}

警报(reverseInt(“-12345”);
如果您想使用纯数学解,那么它应该是这样的:

从数字中删除最后一个数字,并将其附加到数字的末尾 反转数字变量,直到原始数字消失且 反向编号已完成

代码:


这可能有点过分了,但我是如何反转int的

将参数转换为字符串,使用字符串reverse func并加入数组。若要检查参数是正的还是负的,请检查Math.sign()返回的内容。有一些快捷方式可以将反向项转换回int。这可以扩展为检查int是否为0,例如,它不是防弹的。 .
功能反转(int){
设r=(Math.sign(int)>0)?+[…Array.from(int.toString()).reverse()]连接(“”):-Math.abs([…Array.from(int.toString()).reverse())。连接(“”)。替换(‘-’,“”));
返回r
}

console.log(reverse(-123))
期望值应该是什么?它应该返回-54321可能重复的否,它与您提到的不同。@JasminMistry当存在其他有效答案时,请不要要求绿色复选标记。顺便问一下,您是对我的答案投了否决票的人吗?
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"));
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;
};