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;
}
添加回答
舉報