gpt4 book ai didi

javascript - 需要帮助让原型(prototype)方法循环遍历数组

转载 作者:行者123 更新时间:2023-11-30 06:12:09 25 4
gpt4 key购买 nike

我的 javascript 作业需要帮助。我在第 2 部分收到以下错误:

calcCartTotal() ✓ 应定义为原型(prototype)

1) 计算并返回totalCost属性

2) 计算并返回totalCost属性

1 次通过(260 毫秒)

2 失败

1) calcCartTotal() 计算并返回 totalCost 属性: 类型错误:无法读取未定义的属性“项目” 在 cart.calcCartTotal (rb_build.js:43:22) 在 Array.forEach() 在 cart.calcCartTotal (rb_build.js:45:11) 在上下文中。 (nt-test-76b25d6e.js:40:18)

2) calcCartTotal() 计算并返回 totalCost 属性: 类型错误:无法读取未定义的属性“项目” 在 cart.calcCartTotal (rb_build.js:43:22) 在 Array.forEach() 在 cart.calcCartTotal (rb_build.js:45:11) 在上下文中。 (nt-test-76b25d6e.js:57:18)`

这是我所在的作业部分:

“将以下方法添加到 cart 和 foodItem 原型(prototype):

  1. 将 calcItemCost() 添加到 foodItem 原型(prototype)。让该方法返回价格属性乘以数量属性的乘积。 (提示:使用 this 关键字来引用 foodItem 对象。)

  2. 将 calcCartTotal() 添加到购物车原型(prototype)。拥有计算 cartTotal(所有订购商品的总成本)的方法,遍历项目数组的内容并将 calcItemCost() 方法应用于数组中的每个项目。将项目成本总和存储在 totalCost 属性中并返回该值。

  3. 将 addToCart() 添加到 foodItem 原型(prototype)。该方法有一个名为 cart 的参数,表示应将商品添加到的购物车。使用 push() Array 方法将 foodItem 对象添加到购物车的 items 数组中。 (提示:使用 this 关键字来引用 foodItem 对象。)

    1. 将 removeFromCart() 添加到 foodItem 原型(prototype)。该方法有一个名为 cart 的参数,表示应从中删除商品的购物车。循环遍历 cart 对象中的 items 数组,并为每个项目测试它是否等于 foodItem 对象。如果是,使用 splice() 方法从 items 数组中删除对象并中断 for 循环。 (提示:使用 this 关键字引用 foodItem 对象并使用 splice(index, 1) 删除 foodItem,其中 index 是 for 循环中的计数器变量。”

我目前拥有的:

var pizzaPrice = {
size12: 11,
size14: 13,
size16: 16,
stuffed: 3,
pan: 2,
doubleSauce: 1.5,
doubleCheese: 1.5,
topping: 1.5,
};

function cart () {
this.totalCost = 0;
this.items = [];
}


function foodItem () {
this.price
this.qty
}

foodItem.prototype.calcItemCost = function() {
return this.price * this.qty;
};

var calcItemCost = cart.prototype.calcCartTotal = function () {
var cartTotal;
for (var i = 0; i < items.length; i++) {
items.forEach(calcItemCost);
totalCost = totalCost + (items[i].qty * items[i].price);
}
return totalCost;
};

foodItem.prototype.addToCart = function () {
};

foodItem.prototype.removeFromCart = function () {

}

最佳答案

您没有从 cart 调用 items。您需要从 this 调用它们,因为您正在尝试使用其原型(prototype)中的对象属性。

this.items.forEach()

更多信息 here

此外,您的示例中的代码放置肯定存在一些问题...

关于javascript - 需要帮助让原型(prototype)方法循环遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58239774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com