添加到数组元素

时间:2013-08-19 05:28:05

标签: javascript arrays

我有一个数组,第一个元素的值是1.

每次用户点击按钮时,我希望它增加1。 我写了这个,但它使数组元素从1到11变为111 ......依此类推。我怎么才能让它增加1.比如1,2,3 ......

function addCake (){
    quantityArray[0] += 1;
    var cost= quantityArray[0] * 1.49;
    document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}

8 个答案:

答案 0 :(得分:3)

更改您的代码如下:

function addCake (){
    quantityArray[0]=parseInt(quantityArray[0]) + 1;
    var cost= parseInt(quantityArray[0]) * 1.49;
    document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}

答案 1 :(得分:2)

尝试将其转换为int

quantityArray[0] = parseInt(quantityArray[0]);
quantityArray[0] += 1;

我看到的问题是您将数组项目初始化为""

为什么呢?如果您设置为0,则可以避免此问题:http://jsfiddle.net/rgvaT/2/

quantityArray[0]=0;

答案 2 :(得分:2)

无需调用parseInt等。只需正确初始化quantityArray数组:

var quantityArray = [];
quantityArray[0] = 0;

function addCake (){
    quantityArray[0]++;
    var cost = quantityArray[0] * 1.49;
    document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}

答案 3 :(得分:1)

你可以尝试:

quantityArray[0]++;

这也会为你的柜台增加1个。

答案 4 :(得分:1)

试试这个

quantityArray[0]=parseInt(quantityArray[0]) + 1;

答案 5 :(得分:0)

var test = new Array();
    test[0] = 1;
    test[0] += 1;
    test[0] += 1;
alert(test[0]); // output is 3. Its working fine.

您正在做的是将“String”1与之前的数组值连接起来。

要避免使用parseInt()将值转换为int。这样的事情。

function addCake (){
    quantityArray[0] += parseInt(1, 10); // To decimal. It is very important
    var cost= quantityArray[0] * 1.49;
    document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}

答案 6 :(得分:0)

我猜你已经将数组元素初始化为字符串。 使用下面的代码来增加元素。

quantityArray[0] = parseInt(quantityArray[0]) + 1;

答案 7 :(得分:0)

这里的问题是他们的数据类型

JavaScript 中,当您通过var x;声明变量时,它将变量存储为var类型的对象。这就是导致问题的原因。

  

您需要将对象(var)转换为要执行的整数   通过类型转换的数学运算。你可以使用类型转换   (数字)功能。在其他情况下,它会将+视为附加   运算符和变量 String 会附加函数。

代码看起来像这样。

function addCake (){
    quantityArray[0] =(Number)quantityArray[0]+1;
    var cost= quantityArray[0] * 1.49;
    document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}