我是一名刚接触 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/