我创建了一个类Car
并将该类的对象(car1,car2,car3)添加到数组中:
class Car{
constructor(prise){
this.prise = prise;
}
};
我还声明了一个函数,该函数应确定数组中对象的平均价格:
function averageСost(arr) {
var total = 0;
for( var i = 0; i < arr.length; i++ ) {
total = ( total + arr[i] ) / arr.length;;
}
return total;
};
var car1 = new Car( 10000 );
var car2 = new Car( 20000 );
var car3 = new Car( 30000 );
var cars = [ car1, car2, car3 ];
console.log( averageСost( cars ) );
答案 0 :(得分:0)
因为您无法添加Car
对象(您正在使用total + arr[i]
进行操作)。您需要添加这些对象的prise
属性。
此外,您的平均逻辑是错误的;您在每次添加后都用数组长度除以,这将给您带来不正确的结果。您的功能应为:
function averageСost(arr) {
var total = 0,
i;
for(i = 0; i < arr.length; i++) {
total = total + arr[i].prise;
}
return total / arr.length;
}
答案 1 :(得分:0)
您试图将一个汽车对象添加到另一个汽车对象,而您想将每辆汽车的 价格 加在一起。
function averageСost(arr) {
var total = 0;
for(var i = 0; i < arr.length; i++) {
total = (total + arr[i].prise) / arr.length;
}
return total;
}
另外,请修正价格的拼写,请客气。
答案 2 :(得分:0)
您可以执行以下操作:
class Car{
constructor(prise){
this.prise = prise;
}
};
let array = [];
array.push(new Car(1));
array.push(new Car(2));
array.push(new Car(3));
let avg = 0;
if (array.length > 0) {
let sum = 0;
array.forEach((car) => sum += car.prise);
avg = sum / array.length;
}
console.log(avg);
答案 3 :(得分:0)
将您的averageCost函数更改为
function averageСost(arr) {
var total = 0;
for( var i = 0; i < arr.length; i++ ) {
total = total + arr[i].prise;
}
total = total / arr.Lenght;
return total;
};
答案 4 :(得分:0)
问题是在计算总数时,您正在调用一个对象而不是Car类中的数字。
在这一行:
total = ( total + arr[i] ) / arr.length;
应该是:
total = ( total + arr[i].prise ) / arr.length;