Когда я включаю функцию с именем tipAverage, значения для массива «tips» в объекте Mark неверны.Однако, когда я удаляю функцию tipAverage, значения верны.
Я пытаюсь понять, что происходит с кодом (т. Е. Поток управления).Может кто-нибудь сказать мне, почему и как функция tipAverage портит значения в множестве «подсказок» объекта Mark?Спасибо.
var tipJon = {
fullName: "John Smith",
billValues: [124, 48, 268, 180, 42],
calcTipJon: function (){
this.tips = [];
this.totalBill = [];
for (var i = 0; i < this.billValues.length; i++){
var percentage;
var bill = this.billValues[i]
if (bill < 50){
percentage = 0.2;
} else if (bill >= 50 && bill<= 200){
percentage = 0.15;
} else if (bill> 200){
percentage = 0.10;
}
this.tips[i] = this.billValues[i] * percentage;
this.totalBill[i] = (this.billValues[i] * percentage) + this.billValues[i];
}
}
}
var tipMark = {
fullName: "Mark Miller",
billValues: [77, 375, 110, 145],
calcTipMark: function (){
this.tips = [];
this.totalBill = [];
for (var i = 0; i < this.billValues.length; i++){
var percentage;
var bill = this.billValues[i];
if (bill < 100){
percentage = 0.2;
} else if (bill >= 100 && bill<= 300){
percentage = 0.1;
} else if (bill > 300){
percentage = 0.25;
}
this.tips[i] = bill * percentage;
this.totalBill[i] = bill + bill * percentage;
}
}
}
tipMark.calcTipMark();
console.log(tipMark);
tipJon.calcTipJon();
console.log(tipJon);
function tipAverage (arrayName){
for (var i = 0; i < arrayName.length - 1; i++){
//arrayName[i] = arrayName[i] + arrayName[i];
arrayName[i] += arrayName[i + 1];
}
return arrayName[i] / arrayName.length;
}
console.log("TIP AVERAGE " + tipAverage(tipMark.tips));