У меня проблемы с пониманием JS-логики в следующем примере.Я создал объект «x» со свойством «bills», которое является массивом.В том же объекте я добавил метод «tipCalc», который создает два дополнительных свойства для x.Первое свойство - это массив «tips».В «подсказках» каждый элемент «счета» умножается на 0,2, 0,15 или 0,1;Второе свойство - это массив «затрат».В разделе «затраты» каждый элемент «счета» добавляется к каждому элементу «подсказки».Когда я затем печатаю объект в консоль, оба элемента "tips" и "cost" имеют элементы.Тем не менее, когда я пытаюсь вычислить среднее значение элементов в массиве «tips» в функции averageCalc и передаю «x.tips» в качестве аргумента, функция возвращает NaN.Может кто-нибудь объяснить мне, почему функция, которая должна возвращать среднее значение, вместо этого возвращает NaN?Заранее спасибо!
var x = {
bills: [124, 48, 268, 180, 42],
tipCalc: function() {
this.tips = [];
this.costs = [];
for (var i = 0; i < this.bills.length; i++) {
if (this.bills[i] < 50) {
this.tips[i] = this.bills[i] * 0.2;
} else if (this.bills[i] > 50 && this.bills[i] < 200) {
this.tips[i] = this.bills[i] * 0.15;
} else {
this.tips[i] = this.bills[i] * 0.1;
}
this.costs[i] = this.bills[i] + this.tips[i]
}
}
}
x.tipCalc();
function averageCalc(arr) {
var sum = "";
var average = "";
for (i = 0; i < arr.length; i++) {
sum = sum + arr[i];
average = sum / arr.length;
}
return average
}
var j = averageCalc(x.tips);
console.log(j);