Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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中所有为NaN的对象值_Javascript_Javascript Objects - Fatal编程技术网

如何修复JavaScript中所有为NaN的对象值

如何修复JavaScript中所有为NaN的对象值,javascript,javascript-objects,Javascript,Javascript Objects,我目前正在JavaScript画布上开发太阳系物理模拟器。我有一个名为earthState的物体,里面有一些物理系统用来创建地球轨道的信息。我已经为对象中的每个键赋予了一个数值,但是当我将对象记录到控制台时,它会说所有值都是NaN 地球状态: let earthState = { distance: { value: 1.496 * Math.pow(10, 11), speed: 0.00 },

我目前正在JavaScript画布上开发太阳系物理模拟器。我有一个名为earthState的物体,里面有一些物理系统用来创建地球轨道的信息。我已经为对象中的每个键赋予了一个数值,但是当我将对象记录到控制台时,它会说所有值都是NaN

地球状态:

    let earthState = {
        distance: {
            value: 1.496 * Math.pow(10, 11),
            speed: 0.00
        },
        angle: {
            value: Math.PI/2,
            speed: 1.990986 * Math.pow(10, -7)
        }
    };

    console.log(earthState);
当页面第一次加载时,我有对象日志记录,在页面完成加载之前,我已停止页面,并在控制台中获得正确的值:

{距离:{…},角度:{…}   角度:{值:1.57079636267948966,速度:1.9909859999998E-7}   距离:{值:1496000000,速度:0}   __原型:对象

但是,一旦我让页面完成加载,我会得到NaN作为所有值:

{距离:{…},角度:{…}   角度:{值:NaN,速度:NaN}   距离:{值:NaN,速度:NaN}   __原型:对象


加载页面时唯一会发生变化的是动画循环开始。earthState对象中没有任何变量会改变任何内容。我费了好大劲才弄明白这个问题。这可能是我不知道的一些简单的事情。请让我知道,如果是这种情况,如果有什么我应该改变来解决这个问题。提前谢谢你

谢谢大家的评论和想法!我的朋友帮我调试并找到了错误。我只是在其中一个函数中使用了earthState对象而不是sunState对象。干杯

你在用P5js吗?同时发布你的全部代码,这样我们可以更好地帮助你。谢谢您需要一些其他的代码来导致这种情况,例如动画代码,它执行类似disance.value*=10的操作,并且值为10px。不看你的实际代码,我们什么也做不了。仅供参考1.496*Math.pow10,11可以写成1.496e11。对象和显示在同一范围内吗?尝试将let替换为var,看看是否会遇到同样的问题。earthState对象中没有任何变量会改变任何内容。-嗯,但显然有。使用调试器查找它们,请参见或