函数返回NaN

时间:2015-07-19 14:40:44

标签: javascript

我想找到两点之间的距离。

这是我的距离函数。

var distance = function(first, second) {
        var midValue = first - second;
        midValue *= midValue;
        return Math.sqrt(midValue);
    }

这就是我所说的距离函数。

xDist += distance(locations[i].x, students[j][0]);

当我看到xDist的值时,我得到了NaN。我隐含地查看了位置和学生的价值,他们都是数字。此外,在距离函数中,我在返回之前查看了 Math.sqrt(midValue)的值,它是一个数字。

3 个答案:

答案 0 :(得分:1)

我的猜测是locations[i].x或/和students[j][0]undefined因为undefined上的算术运算,或者可能首先不是数字,因此总是输出NaN

答案 1 :(得分:1)

您需要指定xDist = 0的初始值,否则它将是未定义的。 undefined + 10 = NaN

你可以试试这个

var distance = function(first, second) {
        var midValue = first - second;
        midValue *= midValue;
        return Math.sqrt(midValue);
    }

var xDist=0;
xDist += distance(locations[i].x, students[j][0]);
alert(xDist);

答案 2 :(得分:-1)

虽然看起来数字似乎总是不是数字。所以最好做一个parseInt。

var distance = function(first, second) {
        var midValue = parseInt(first) - parseInt(second);
        midValue *= midValue;
        return Math.sqrt(midValue);
    }