因此,最近我了解了如何使用for in循环来循环对象。对于一个基本的购物车对象,包括对象的名称、数量和价格,给出了这个问题的解决方案。
const cart = {
"Gold Round Sunglasses": { quantity: 1, priceInCents: 1000 },
"Pink Bucket Hat": { quantity: 2, priceInCents: 1260 },
};我们必须编写两个函数,一个以美分计算库存总成本,另一个显示库存。
我能够轻松地完成第一个问题,但我正在与第二个问题作斗争。
第一职能:
function calculateCartTotal(cart) {
let total = 0;
for(let item in cart){
const product = cart[item]
const quantity = product.quantity
const price = product.priceInCents
total += quantity * price
}
return total
}第二职能:
function printCartInventory(cart) {
let inventory = ""
for(let item in cart){
const product = cart[item]
const quantity = product.quantity
inventory += `${quantity}x${product}/n`
}
return inventory
}当我测试第二个函数时,自动平平器给出了以下错误:
expected '2x[object Object]/n1x[object Object]/n1x[object Object]/n3x[object Object]/n' to include '2xCanvas Tote Bag\n1xBlack and White Chuck On Dress\n1xNatural Straw Wide Brim Hat\n3xBlue Stripe Casual Shirt'发布于 2022-09-22 19:39:49
当您查看错误消息时,请注意显示[object Object]的部分。这是代码输出的一部分,应该会引起注意。这意味着您的代码试图将对象放在字符串中,而不是字符串中。
罪证在这里:
inventory += `${quantity}x${product}/n`product不是一个字符串,而是一个对象。这不是你打算在那里输出的东西。要输出的是产品的名称,它是键,而不是与该键关联的值。所以应该是:
inventory += `${quantity}x${item}/n`https://stackoverflow.com/questions/73819459
复制相似问题