jquery while循环不使用某些值

时间:2014-06-07 16:45:01

标签: jquery

所以我有以下jquery代码,while循环工作(即循环运行和$ total更改)完全具有某些值,而与其他值完全不同:

function yearshad ($a, $b) {
var $somenewval=$a;
var $total = 0.0;
console.log($a);// console debug
console.log($b); // console debug
while ($a>$b) {
    console.log($a); // console debug
    $a -= 1.0;
    $total += 1.0/$a;
    console.log($a); // console debug
    console.log($b); // console debug
}
var $result2 = $total * $somenewval;
return $result2;
}

没有debug console.log命令:

function yearshad ($a, $b) {
var $somenewval=$a;
var $total = 0.0;
while ($a>$b) {
    $a -= 1.0;
    $total += 1.0/$a;   
}
var $result2 = $total * $somenewval;
return $result2;

}

一些工作价值............. $ a = 22 $ b = 2,$ a = 6 $ b = 4,$ a = 5 $ b = 3,$ a = 22 $ b = 11

一些不起作用的值$ a = 22 $ b = 3,$ a = 22 $ b = 10,$ a = 34 $ b = 7

有没有人知道是什么导致这个?

提前致谢

该函数从:

调用
function mainfunction() {
$a = $('#currentage').val();
$b = $('#memorystart').val();
$result = yearshad ($a, $b);
$answer = 'random text' + $result + 'random text';
    $('#resultline').html($answer);
}

1 个答案:

答案 0 :(得分:0)

在尝试对它们进行比较操作之前,您没有将字符串从输入字段转换为数字。在您的函数中,传递字符串"22"会产生与传递数字22不同的结果。

如果将其添加到函数的开头:

$a = +$a;
$b = +$b;

然后,它会将两个参数都转换为数字。

function yearshad($a, $b) {
    $a = +$a;
    $b = +$b;
    var $somenewval = $a;
    var $total = 0.0;
    while ($a > $b) {
        $a -= 1.0;
        $total += (1.0 / $a);
        console.log($total); // console debug
    }
    var $result2 = $total * $somenewval;
    return $result2;
}

仅供参考,可能是字符串失败的比较,因为"22" < "3"如果是数字就不是这种情况。