Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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坚持认为0是NaN_Javascript_Nan - Fatal编程技术网

JavaScript坚持认为0是NaN

JavaScript坚持认为0是NaN,javascript,nan,Javascript,Nan,所以我用JavaScript制作了一个直方图,当我初始化它时,每个箱子都有一个属性“contents”,初始化为0: for (var rBin = 0; rBin < 255; rBin += 16) { for (var gBin = 0; gBin < 255; gBin += 16) { for (var bBin = 0; bBin < 255; bBin += 16) { histogram[j] = {r:rBin,

所以我用JavaScript制作了一个直方图,当我初始化它时,每个箱子都有一个属性“contents”,初始化为0:

for (var rBin = 0; rBin < 255; rBin += 16) {
    for (var gBin = 0; gBin < 255; gBin += 16) {
        for (var bBin = 0; bBin < 255; bBin += 16) {
            histogram[j] = {r:rBin, g:gBin, b:bBin, contents:0, width:16};
            j += 1;
        }
    }
}
它变得更奇怪了。如果我只记录
直方图[0]
,则它工作正常,并提供:

Object {r: 0, g: 0, b: 0, contents: 0, width: 16}
我做错了什么

编辑: 使用以下行完成日志记录:

console.log(histogram);
console.log(histogram[0]);
编辑2:
在调试器中暂停此操作将显示直方图正确存储在
console.log(直方图[0])
行上,而不是
console.log(直方图)

要详细说明上述注释,某些浏览器上的控制台提供了您记录的对象的“实时”视图。例如,当复合对象(或数组)展开时,Firebug将显示最新数据。(此外,似乎是这样的。)

因此,至少在Firebug中,记录不可扩展信息(如
直方图[0]
)将导致“静态”数据不会更改,而记录可扩展信息(如
直方图
)将导致“动态”数据,反映对象在扩展时的状态,在登录时没有

在您的特定情况下,代码中的某些内容会在您记录后碰撞
内容的值,但由于您正在扩展记录的对象,因此您将看到碰撞的值,而不是原始值


从你的评论来看,这似乎涉及到一个部门。它可能是被零除,因为
contents
最初是
0
,而
0/0
产生
NaN

这可能与您在第一次日志记录中访问“直方图”的方式有关。你能添加那个代码吗?你在这里发布的代码不能这样做,所以你必须对其他代码中的值做一些其他的操作@Tom,所以看起来内容后来确实发生了变化。您应该仔细检查对它执行的进一步操作(查找错误地涉及字符串的算术运算)。啊@FrédéricHamidi,你搞定了-我后来删除了一个除法(我现在将探究为什么我的整数除法会导致NaN出现),这就解决了它@克里斯,谢谢,完成了。
console.log(histogram);
console.log(histogram[0]);