var john = {
name: 'John Smith',
bills: [124,48,268,180,42],
tips : [],
final: [],
calcTips: function(){
for(i = 0; i < this.bills.length;i++){
if(this.bills[i] < 50){
this.tips[i] = this.bills[i] * 0.2;
this.final[i] = this.bills[i] + this.tips[i];
} else if(this.bills[i] >= 50 && this.bills[i] <= 200){
this.tips[i] = this.bills[i] * 0.15;
this.final[i] = this.bills[i] + this.tips[i];
} else{
this.tips[i] = this.bills[i] * 0.1;
this.final[i] = this.bills[i] + this.tips[i];
}
}
}
};
var mark = {
name: 'Mark Smith',
bills: [77,375,110,45],
tips : [],
final: [],
calcTips: function(){
for(i = 0; i < this.bills.length;i++){
if(this.bills[i] < 100){
this.tips[i] = this.bills[i] * 0.2;
this.final[i] = this.bills[i] + this.tips[i];
} else if(this.bills[i] >= 100 && this.bills[i] <= 300){
this.tips[i] = this.bills[i] * 0.1;
this.final[i] = this.bills[i] + this.tips[i];
} else{
this.tips[i] = this.bills[i] * 0.25;
this.final[i] = this.bills[i] + this.tips[i];
}
}
}
};
function calcAverage(tips){
var sum = 0;
for(i = 0; i < tips.length ; i++){
sum = tips[i] + sum;
}
return sum / tips.length;
}
mark.Average = calcAverage(mark.tips);
john.Average = calcAverage(john.tips);
mark.calcTips();
john.calcTips();
console.log(john);
console.log(mark);
функция calcAverage возвращает значение NaN, превышающее среднее число. я закодировал его так, что он будет l oop массива подсказок и добавит к переменной суммы подсказки плюс сумму. кто-нибудь может объяснить проблему?