Javascript 按特定属性返回NaN计算对象数组的总和
汉堡包由一种或多种Javascript 按特定属性返回NaN计算对象数组的总和,javascript,oop,ecmascript-6,Javascript,Oop,Ecmascript 6,汉堡包由一种或多种填料(不少于一种)补充。 但是,当我使用…填充时结果是未定义 请帮助我如何更正此任务,以便计算所有配料的成本 功能汉堡(尺寸,…填料){ 这个。大小=大小; 这个。填充=填充; this.topping=[]; } 汉堡。小={ 名称:'小', 价格:10,, 千卡:200 } 汉堡、奶酪={ 名字:“奶酪”, 价格:4, 千卡:10 } 汉堡包{ 姓名:'见面', 价格:40, 千卡:103 } Hamburger.prototype.calculatePrice=()=>
填料(不少于一种)补充。
但是,当我使用…填充时
结果是未定义
请帮助我如何更正此任务,以便计算所有配料的成本
功能汉堡(尺寸,…填料){
这个。大小=大小;
这个。填充=填充;
this.topping=[];
}
汉堡。小={
名称:'小',
价格:10,,
千卡:200
}
汉堡、奶酪={
名字:“奶酪”,
价格:4,
千卡:10
}
汉堡包{
姓名:'见面',
价格:40,
千卡:103
}
Hamburger.prototype.calculatePrice=()=>{
让allCost=humb1.size.price+humb1.ficking.price;
return`汉堡总价格:${allCost}`
}
let humb1=新汉堡(Hamburger.small,Hamburger.cheese,Hamburger.meet);
log(humb1.calculatePrice())代码>
- 你不能像以前那样使用arrow函数,你需要使用好的
函数
声明(或者也可以使用es6语法糖)。看一看以了解原因(在您的情况下,您得到的不是汉堡
对象,而是全局窗口
对象)李>
- 不要在实现
calculatePrice
时使用humb1
,该函数是类原型的一部分,而humb1
是类实例
填充
是一个数组。您需要对每个项目进行操作,以获得总成本。我在这里用过李>
功能汉堡(尺寸,…填料){
这个。大小=大小;
这个。填充=填充;
this.topping=[];
}
汉堡。小={
名称:'小',
价格:10,,
千卡:200
}
汉堡、奶酪={
名字:“奶酪”,
价格:4,
千卡:10
}
汉堡包{
姓名:'见面',
价格:40,
千卡:103
}
Hamburger.prototype.calculatePrice=函数(){
让totalCost=this.size.price+this.ficking.reduce((a,c)=>a+c.price,0);
返回`汉堡总价格:${totalCost}`;
}
let humb1=新汉堡(Hamburger.small,Hamburger.cheese,Hamburger.meet);
log(humb1.calculatePrice())代码>填充
是一个数组。它没有.price
属性。如果你想知道所有原料的成本,你就必须把它们加起来。使用循环或.reduce()