首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在从数组中获取值时会出现NaN (而不是数字)错误?

为什么在从数组中获取值时会出现NaN (而不是数字)错误?
EN

Stack Overflow用户
提问于 2014-12-19 11:40:11
回答 2查看 916关注 0票数 2

我正在使用三角剖分来计算用户的位置。

如果我使用数组值,它会输出NaN NaN,但是如果我硬编码这些值,它就会像预期的那样正常工作并输出。

从数组中获取值:

代码语言:javascript
复制
    var beaconCoordinates = [[10,20], [200,300], [50,500]];

    //get values from array
    var aX = parseInt(beaconCoordinates[0,0]);
    var aY = parseInt(beaconCoordinates[0,1]);
    var bX = parseInt(beaconCoordinates[1,0]);
    var bY = parseInt(beaconCoordinates[1,1]);
    var cX = parseInt(beaconCoordinates[2,0]);
    var cY = parseInt(beaconCoordinates[2,1]);

对值进行硬编码:

代码语言:javascript
复制
    var aX = 2;
    var aY = 4;
    var bX = 5.5;
    var bY = 13;
    var cX = 11.5;
    var cY = 2;

下面是代码的其余部分:

代码语言:javascript
复制
    var dA = 5.7;
    var dB = 6.8;
    var dC = 6.4;

    //trilateration / triangulation formula
    var S = parseInt((Math.pow(cX, 2.) - Math.pow(bX, 2.) + Math.pow(cY, 2.) - Math.pow(bY, 2.) + Math.pow(dB, 2.) - Math.pow(dC, 2.)) / 2.0);
    var T = parseInt((Math.pow(aX, 2.) - Math.pow(bX, 2.) + Math.pow(aY, 2.) - Math.pow(bY, 2.) + Math.pow(dB, 2.) - Math.pow(dA, 2.)) / 2.0);
    var y = ((T * (bX - cX)) - (S * (bX - aX))) / (((aY - bY) * (bX - cX)) - ((cY - bY) * (bX - aX)));
    var x = ((y * (aY - bY)) - T) / (bX - aX);

    //x and y position of user
    console.log(x,y);

有人能给我解释一下吗?我真的很困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-19 11:42:25

访问数组的方式稍有错误。你需要

代码语言:javascript
复制
parseInt(beaconCoordinates[0][0]);

而不是那样

parseInt(beaconCoordinates[0,0]);

票数 3
EN

Stack Overflow用户

发布于 2014-12-19 11:43:05

问题是,您只获取顶级数组,不能访问arr 0、0值,而需要一次获得一个值:arr。

http://jsfiddle.net/ayqmLp2n/

代码语言:javascript
复制
var beaconCoordinates = [[10,20], [200,300], [50,500]];

//get values from array
var aX = parseInt(beaconCoordinates[0][0]);
var aY = parseInt(beaconCoordinates[0][1]);
var bX = parseInt(beaconCoordinates[1][0]);
var bY = parseInt(beaconCoordinates[1][1]);
var cX = parseInt(beaconCoordinates[2][0]);
var cY = parseInt(beaconCoordinates[2][1]);

console.log(cY);

如果使用的话,还应该将基参数传递到parseInt .

Why do we need to use radix?

parseint.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27565359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档