当前位置: 代码迷 >> JavaScript >> 汇总数组中的值-Javascript
  详细解决方案

汇总数组中的值-Javascript

热度:110   发布时间:2023-06-13 12:30:38.0

我有一个包含25个插槽的数组,每个插槽都单击相应的按钮填满。 我在总结数组的值时遇到问题。 我努力了

for(var k = 0; k < price.length; k++)
{
    totalPrice += price[k] << 0;
}

但这似乎只是将价格附加到先前输出的末尾,而不是相加。

我当前的代码是这样的:

$("#sumArray").click(function()
{       
    a++;
    price[0] = 8.45 * a;
    alert(price[0]);
    for(var k = 0; k < price.length; k++)
    {
        totalPrice += price[k] << 0;
    }
    alert(totalPrice);
    for(var i = 0; i < 27; i++)
    {
        $("#priceHere"+i+"").append("<b>"+totalPrice+"</b>");
    }
    //$.mobile.changePage("#mainMenu1");
});

其他所有数组索引都填充在其他click函数中。

编辑:删除了与问题无关的所有代码,以便于阅读。 价格数组索引可以根据单击某个按钮的次数而改变。

对于现代浏览器(IE 9+及其他)

total = price.reduce(function (prev,curr) {
   return prev + curr;
}, 0);

参考: :

在计算之前添加以下内容:

totalPrice = 0;

如果不重置该值,它将继续添加到先前的输出中。

由于问题一直在编辑:

$("#priceHere"+i+"").append("<b>"+totalPrice+"</b>");

确实,它说了什么。 它将总价格附加到元素。 如果要完全覆盖该值,可以执行以下操作:

$("#priceHere"+i+"").html("<b>"+totalPrice+"</b>");

根据您的问题,您只需要这个

price = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5]
totalPrice = 0
for(var k = 0; k < price.length; k++) {totalPrice += price[k];}
// gives 105

但这似乎只是将价格附加到先前输出的末尾,而不是相加。

使其为零:

totalPrice = 0

您在哪里申报pricetotalPrice

这是一个求和一个数组值的例子:

var price = [1, 2, 3, 4, 5], // example array of prices
    totalPrice = 0, // initialize to 0 so totalPrice is a number
    k; // counter that you'll use in the loop

for (k = 0; k < price.length; k++) {
  totalPrice += price[k];
}

console.log(totalPrice); // 15

请注意,JavaScript使用+运算符进行加法和字符串连接。 听起来好像发生了将totalPrice设置为字符串(或为一个)的情况,因此,当您要添加数字时,实际上是在连接一个字符串。

这是一个看起来像的例子。 请注意,所有代码都是相同的,除了将字符串(而不是数字)分配给totalPrice之外:

var price = [1, 2, 3, 4, 5], // example array of prices
    totalPrice = '0', // initialized as the string '0'
    k; // counter that you'll use in the loop

for (k = 0; k < price.length; k++) {
  totalPrice += price[k];
}

console.log(totalPrice); // '012345'
  相关解决方案