javascript - For 循环中断函数

标签 javascript

我是一名刚接触 JS 的学生。不幸的是,我在这个问题上很纠结,而且谷歌搜索也没有帮助我解决这个问题。

我已经省略了大部分不相关的 HTML 部分,但这是我的代码。从本质上讲,这是一个允许用户为 PC 选择组件并为其估算价格的程序。

var tPrice = 0

function Pick(obj) {
  Comp = ["p3", "p5", "p7", "16GB", "32GB", "1TB", "2TB", "19", "23", "MNT", "MDT", "2P", "4P"];
  Price = [100, 120, 200, 75, 150, 50, 100, 65, 120, 40, 70, 10, 20];
  Cart = [];
  PriceCart = [];

  var value = obj.value;

  var cIndex = Comp.indexOf(value);
  var cPrice = Price[cIndex];

  tPrice = (tPrice + cPrice);

  document.getElementById("dtPrice").innerHTML = ("$" + tPrice);

  Cart.push(value);
  PriceCart.push(cPrice);

  for (var i = 0; i < Comp.length; i++) {
    var sList = Cart[i] + "   $"
    PriceCart[i];
  }
  document.getElementById("dsList").innerHTML = sList;

}
<div class="sidebar">
  <h3>Shopping Cart :</h3>
  <p id="dsList">You have bought nothing!</p>

  <h3>Total Price</h3>
  <p id="dtPrice">$0</p>
</div>

我现在的问题是该程序在没有 for 循环的情况下可以完美运行,但是在我添加它之后,整个函数停止工作。

至于 for 循环的具体作用,它应该将两个单独的数组打印在一起作为一个事件的“购物车”。

我究竟对破坏整个程序的 for 循环做了什么?

最佳答案

那是因为你在 for 循环中声明了变量 sList,所以每次循环迭代你都在创建新的 sList 并为其分配一些东西. 尝试这样做:

var sList = '';//string another array, w/e you need it to be
 for (var i = 0; i < Comp.length; i++) {
        sList += Cart[i] + "   $" + PriceCart[i];
    }

关于javascript - For 循环中断函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49681716/

相关文章:

javascript - 如何将 slideToggle 与动画和自动滚动相关联以达到匹配的 DIV?

javascript - 为什么 CSS 转换在通过 trigger.click 触发时不触发

javascript - 三.js object3d 的操作顺序

javascript - 按关闭按钮停止视频

PHP Ajax聊天: data one PC to another pc not sending/receiving

javascript - 如何访问和使用 do while 循环的返回值?

javascript - 如何使用 Backbone.js 停止事件传播?

javascript - 从 Node 传递的变量不会显示在 EJS 文件中

javascript - Chrome 子窗口中的 window.print() - 关闭,然后中断

javascript - 推特 Bootstrap 中的行流体与行