我对阵列的错误是什么?

时间:2016-07-03 12:09:45

标签: javascript node.js

我对JavaScript和Node.JS都很陌生,我真的无法理解为什么我使用以下表达式获得 NaN

var aUsersBetted = {};
aUsersBetted['1337'] += 200000;
logger.debug(aUsersBetted['1337']);

执行此操作后,它会在控制台中打印出NaN。我现在真的很困惑。抱歉,顺便提一下这个愚蠢的问题。

3 个答案:

答案 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']);

在此测试:https://jsfiddle.net/hjqvwfwt/

答案 2 :(得分:0)

您没有初始化变量aUsersBetted ['1337']。

JavaScript尝试执行此操作: undefined + 200000

你想要什么: 0 + 200000

使用:

aUsersBetted['1337'] = 0;
aUsersBetted['1337'] += 200000;