在数组内添加整数值

时间:2014-01-27 18:06:45

标签: javascript arrays

我在这里是个菜鸟,所以希望我已经提供了足够的信息。 我有一项任务要求我制作一个执行以下操作的JavaScript应用程序...

书店需要跟踪一天销售的书籍数量和每本书的价格。 使用要求用户的数组创建应用程序:

  1. 输入每本书的名称和价格(5本书的样本就足够了)。
  2. 在屏幕上显示每本书和价格。
  3. 计算出售图书的总价格并在屏幕上显示总数。
  4. 打印屏幕显示。
  5. 我的HTML中有3个带有ID的div - "nameOfBook""priceOfBook""displayTotal"

    我创建了两个用于循环的数组,以在页面上显示"nameOfBook""priceOfBook"

    我遇到的问题是让它添加书籍的价格并将此总额显示给我的"displayTotal" div。

    这是JS ..

    function addBooks()
    {
      var nameBook = new Array();
    
      for(i=0; i<5; i++)
      { 
        nameBook = prompt("Enter name of Book","");
        document.getElementById("nameOfBookDiv").innerHTML += nameBook + "<br>";
    
        var priceBook = new Array();
        priceBook = prompt("Enter price of Book","");
        document.getElementById("priceOfBookDiv").innerHTML += priceBook + "<br>";
      }
    
      var total = 0;
    
      for(var i in priceBook)
      {
        total += priceBook[i];
        parseFloat(document.getElementById("displayTotal").innerHTML += total);
      }
    }
    

3 个答案:

答案 0 :(得分:0)

我这样改了:

function addBooks() {
    var nameBook = new Array();
    var priceBook = new Array();
    for (i = 0; i < 5; i++) {

        var bookName = prompt("Enter name of Book");
        nameBook.push(bookName);

        var bookPrice;
        while (isNaN(parseInt(bookPrice = prompt("Enter price of Book")))) {
            alert("Enter a valid number as a price!")
        }

        priceBook.push(parseInt(bookPrice));

    }
    document.getElementById("nameOfBookDiv").innerHTML += nameBook.join("<br>");
    document.getElementById("priceOfBookDiv").innerHTML += priceBook.join("<br>");


    var total = 0;

    for (var i = 0; i < priceBook.length; i++) {
        total += priceBook[i];
    }
    document.getElementById("displayTotal").innerHTML = parseFloat(total);
}

这是你的工作DEMO

答案 1 :(得分:0)

以下是代码中的一些逻辑错误:

  1. 您不需要将nameBook定义为数组(您不需要存储所有书名)
  2. 您应该定义总变量并将其初始化为0
  3. 您应该使用变量从用户那里获取价值,将变量的内容打印到priceOfBookDiv并将此值添加到总数中。
  4. 首先计算总数,然后将其打印到displayTotal div(在您的示例中打印总值的部分结果)
  5. 这是一个有效的code

    function addBooks()
    {
        var total = 0;
        for(i=0; i<5 ; i++)
        { 
            var nameBook = prompt("Enter name of Book","");
            document.getElementById("nameOfBookDiv").innerHTML += nameBook + "<br>";
    
            var priceBook = parseInt(prompt("Enter price of Book",""));
            document.getElementById("priceOfBookDiv").innerHTML += priceBook + "<br>";
            total += priceBook;
        }
    
        parseFloat(document.getElementById("displayTotal").innerHTML += total);
    }
    

答案 2 :(得分:0)

我认为你有一些基本的编程问题; “分配”变量意味着什么?如何存储一组值以供以后在程序中使用?

您正在prompt("Enter price of Book", "");内记录图书的价格。 您要做的是修改priceOfBookDiv innerHTML以显示您已完成的提示中输入的价格,但是您忘记将提示的值存储在值集合中以供稍后使用。最简单的方法是使用Array。

var arrayOfPrices = [];

for (var i=0; i<5; i++) {
  ...
  var priceOfSingleBook = prompt("Enter price of Book", "");
  document.getElementById("priceOfBookDiv").innerHTML += priceOfSingleBook;
  arrayOfPrices.push(priceOfSingleBook);
}

var total = 0;
for (var i in arrayOfPrices) {
  total += arrayOfPrices[i];
  ...
}