首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历对象javascript

遍历对象javascript
EN

Stack Overflow用户
提问于 2022-09-22 18:53:08
回答 1查看 50关注 0票数 1

因此,最近我了解了如何使用for in循环来循环对象。对于一个基本的购物车对象,包括对象的名称、数量和价格,给出了这个问题的解决方案。

代码语言:javascript
复制
const cart = {
  "Gold Round Sunglasses": { quantity: 1, priceInCents: 1000 },
  "Pink Bucket Hat": { quantity: 2, priceInCents: 1260 },
};

我们必须编写两个函数,一个以美分计算库存总成本,另一个显示库存。

  1. calculateCartTotal函数将接受购物车,并以美分为单位返回购物车内所有东西的总价。
  2. printCartInventory函数将接受购物车,并返回一个字符串,该字符串由\n加入,表示每一项的数量和名称。

我能够轻松地完成第一个问题,但我正在与第二个问题作斗争。

第一职能:

代码语言:javascript
复制
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
}

第二职能:

代码语言:javascript
复制
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
}

当我测试第二个函数时,自动平平器给出了以下错误:

代码语言:javascript
复制
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'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-22 19:39:49

当您查看错误消息时,请注意显示[object Object]的部分。这是代码输出的一部分,应该会引起注意。这意味着您的代码试图将对象放在字符串中,而不是字符串中。

罪证在这里:

代码语言:javascript
复制
inventory += `${quantity}x${product}/n`

product不是一个字符串,而是一个对象。这不是你打算在那里输出的东西。要输出的是产品的名称,它是键,而不是与该键关联的值。所以应该是:

代码语言:javascript
复制
inventory += `${quantity}x${item}/n`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73819459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档