我对JavaScript和Node.JS都很陌生,我真的无法理解为什么我使用以下表达式获得 NaN :
var aUsersBetted = {};
aUsersBetted['1337'] += 200000;
logger.debug(aUsersBetted['1337']);
执行此操作后,它会在控制台中打印出NaN。我现在真的很困惑。抱歉,顺便提一下这个愚蠢的问题。
答案 0 :(得分:1)
让我们逐行采取行动。
这个var aUsersBetted = {};
创建一个对象,而不是数组。
此aUsersBetted['1337'] += 200000;
将200000添加到与密钥1337关联的值。
由于您在使用密钥之前尚未定义密钥,因此它的值也未定义。因此,您尝试将未定义的值添加到数字中。这就是您收到此错误的原因。
解决问题的一种可能方法是初始化1337的值,如:
aUsersBetted['1337'] = 0;
然后你的表达式aUsersBetted['1337'] += 200000;
会将200000添加到0并将其设置为返回内存中的位置,aUsersBetted['1337']
指向该位置。
答案 1 :(得分:0)
首先,将对象值设置为0.您正尝试将200000
添加到未定义的值。
var aUsersBetted = {};
aUsersBetted['1337'] = 0;
aUsersBetted['1337'] += 200000;
window.console.log(aUsersBetted['1337']);
答案 2 :(得分:0)
您没有初始化变量aUsersBetted ['1337']。
JavaScript尝试执行此操作: undefined + 200000
你想要什么: 0 + 200000
使用:强>
aUsersBetted['1337'] = 0;
aUsersBetted['1337'] += 200000;