我的johnTipAvg函数是控制台记录平均值,但是由于某种原因它没有返回平均值。我在底部有markTipAvg,它返回的值很好,所以我真的不明白为什么这不起作用...
我检查了错别字,找不到任何东西。同样,弄乱了函数的位置,我在函数调用周围移动。我在哪里出错了?
var john = {
bills: [124, 48, 268, 180, 42],
tips: [],
finalBill: [],
calcTip: function(bill) {
for (var i = 0; i < bill.length; i++) {
if (bill[i] < 50) {
this.tips.push(bill[i] * .2);
this.finalBill.push(bill[i] + (bill[i] * .2));
} else if (bill[i] > 50 && bill[i] < 200) {
this.tips.push(bill[i] * .15);
this.finalBill.push(bill[i] + (bill[i] * .15));
} else {
this.tips.push(bill[i] * .10);
this.finalBill.push(bill[i] + (bill[i] * .10));
}
}
}
}
function johnTipAvg(tip) {
var sum = 0;
for (var i = 0; i < tip.length; i++) {
sum += tip[i];
}
var avg = sum / (tip.length - 1);
console.log(avg);
return avg;
}
john.calcTip(john.bills);
johnTipAvg(john.tips);
var mark = {
bills: [77, 375, 110, 45],
tips: []
}
function markCalcTips(bill) {
var sum;
for (var i = 0; i < bill.length; i++) {
if (bill[i] < 100) {
mark.tips.push(bill[i] * .2);
} else if (bill[i] > 100 && bill[i] < 300) {
mark.tips.push(bill[i] * .1);
} else {
mark.tips.push(bill[i] * .25);
}
}
}
function markTipAvg(tip) {
var sum = 0;
for (var i = 0; i < tip.length; i++) {
sum += tip[i];
}
var avg = sum / (tip.length - 1);
return avg;
}
markCalcTips(mark.bills);
markTipAvg(mark.tips);
答案 0 :(得分:0)
markTipAvg()
恢复正常:
var john = {
bills: [124, 48, 268, 180, 42],
tips: [],
finalBill: [],
calcTip: function(bill){
for(var i = 0; i < bill.length; i++){
if(bill[i] < 50){
this.tips.push(bill[i] * .2);
this.finalBill.push(bill[i] + (bill[i] * .2));
} else if(bill[i] > 50 && bill[i] < 200){
this.tips.push(bill[i] * .15);
this.finalBill.push(bill[i] + (bill[i] * .15));
} else {
this.tips.push(bill[i] * .10);
this.finalBill.push(bill[i] + (bill[i] * .10));
}
}
}
}
function johnTipAvg(tip){
var sum = 0;
for(var i = 0; i < tip.length; i++){
sum += tip[i];
}
var avg = sum / (tip.length -1);
console.log(avg);
return avg;
}
console.log("john.calcTip(john.bills) = " + john.calcTip(john.bills));
console.log("johnTipAvg(john.tips) = " + johnTipAvg(john.tips));
var mark = {
bills: [77, 375, 110, 45],
tips: []
}
function markCalcTips(bill){
var sum;
for(var i = 0; i < bill.length; i++){
if(bill[i] < 100){
mark.tips.push(bill[i] * .2);
} else if(bill[i] > 100 && bill[i] < 300){
mark.tips.push(bill[i] * .1);
} else {
mark.tips.push(bill[i] * .25);
}
}
}
function markTipAvg(tip){
var sum = 0;
for(var i = 0; i < tip.length; i++){
sum += tip[i];
}
var avg = sum / (tip.length -1);
return avg;
}
console.log("markCalcTips(mark.bills) = " + markCalcTips(mark.bills));
console.log("markTipAvg(mark.tips) = " + markTipAvg(mark.tips));