2 回答
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的問題是,當(dāng)您計(jì)算提示時(shí),您正在修改 的元素。發(fā)生這種情況是因?yàn)閿?shù)組在 JavaScript 中是通過引用傳遞的,這意味著這不是包含 的所有元素的新數(shù)組,而是相同的數(shù)組。因此,當(dāng)您將其稱為 時(shí),您對它所做的任何修改都會顯示出來。myBillsArrayarrayOfBillsmyBillsArraymyBillsArray
要解決此問題,您可以執(zhí)行以下操作:
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貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以將計(jì)算提示函數(shù)更改為以下內(nèi)容。使用新數(shù)組保留函數(shù)的結(jié)果
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;
}
添加回答
舉報(bào)
