2 回答

TA贡献1859条经验 获得超6个赞
您的问题是,当您计算提示时,您正在修改 的元素。发生这种情况是因为数组在 JavaScript 中是通过引用传递的,这意味着这不是包含 的所有元素的新数组,而是相同的数组。因此,当您将其称为 时,您对它所做的任何修改都会显示出来。myBillsArrayarrayOfBillsmyBillsArraymyBillsArray
要解决此问题,您可以执行以下操作:
function calculateTips(arrayOfBills){
var myTips = [];
for(i=0; i<arrayOfBills.length; i++){
if(arrayOfBills[i] < 50){
myTips[i] = arrayOfBills[i] * 0.20;
}else if(arrayOfBills[i] >= 50 && arrayOfBills[i] < 200){
myTips[i] = arrayOfBills[i] * 0.15;
}else{
myTips[i] = arrayOfBills[i] * 0.10;
}
}
return myTips;
}

TA贡献1786条经验 获得超11个赞
您可以将计算提示函数更改为以下内容。使用新数组保留函数的结果
function calculateTips(arrayOfBills){
var tips = []
for(i=0; i<arrayOfBills.length; i++){
if(arrayOfBills[i] < 50){
tips[i] = arrayOfBills[i] * 0.20;
}else if(arrayOfBills[i] >= 50 && arrayOfBills[i] < 200){
tips[i] = arrayOfBills[i] * 0.15;
}else{
tips[i] = arrayOfBills[i] * 0.10;
}
}
return tips;
}
添加回答
举报