使用Javascript添加数字

时间:2011-11-21 15:35:43

标签: javascript

简单问题: 我正在尝试将数字添加到这样的数组中:

sorted[4][2]+=nbrMvt[i];

但它添加了两个数字,好像它们是字符串一样。输出只是将数字放在另一个旁边...... 我试过这些方法:

sorted[4][2]+=parseInt(nbrMvt[i]);

sorted[4][2]=sorted[4][2]+nbrMvt[i];

sorted[4][2]=parseInt(sorted[4][2])+parseInt(nbrMvt[i]);

但它们都不起作用。

[编辑]

好的,这就是我创建数组的方式:

var sorted = MultiDimensionalArray(13,4);

然后我将字符串值赋值给sorted [x] [0 ... 12]
最后一个例子给了我“NaNNaNNaNNaN”左

 function MultiDimensionalArray(iRows,iCols)
  {
  var i;
  var j;
     var a = new Array(iRows);
     for (i=0; i < iRows; i++)
     {
         a[i] = new Array(iCols);
         for (j=0; j < iCols; j++)
         {
             a[i][j] = "";
         }
     }
     return(a);
  } 

(顺便说一句,从我的问题投票中我应该了解什么?)

3 个答案:

答案 0 :(得分:1)

你可能没有设置一些值(也许是i === null或somthing)......但是这样可行:

var sorted = [], 
nbrMvt = [],
i = 0;
// set up arrays and populate just enough values...
nbrMvt[i] = 40;
sorted[4] = [];
sorted[4][2] = 2;

sorted[4][2]=parseInt(sorted[4][2])+parseInt(nbrMvt[i]);

document.write(sorted[4][2]);

答案 1 :(得分:0)

如果您x+=4 NaN x,如果之前是nullundefined,则会+=

最好先用 0填充x+=4的内容。

如果"104" x "10",如果字符串 x+=y之前的"104",则不是数字 10。 如果您x x 10,即使"4"以前编号为+foo,但y 字符串 {{1}} }。

最好显式转换为数字(使用{{1}};这是一元加号,而不是加法运算符,这是在Javascript中强制数字强制的最短方法)如果你想要数字算术。

答案 2 :(得分:0)

您的MultiDimensionalArray(iRows,iCols)函数将数组内容定义为字符串。当您尝试向数组中的元素添加数字时,例如:sorted[4][2] += 2它只是连接到该字符串。

然而,即使在那种情况下,以下内容仍然有效:

sorted[4][2] = parseInt(sorted[4][2])+parseInt(nbrMvt[i]);

除非 nbrMvt[i]格式无效,导致parseInt()返回NaN。这也将使总和NaN

以下是jsFiddle与您类似的工作代码,只需对您的MultiDimensionalArray()函数进行少量重写。