谁能给我解释这for / in循环?


/*
Write each function according to the instructions.

When a function's parameters reference `cart`, it references an object that looks like the one that follows.
{
"Gold Round Sunglasses": { quantity: 1, priceInCents: 1000 },
"Pink Bucket Hat": { quantity: 2, priceInCents: 1260 }
}
*/
function calculateCartTotal(cart) {
let total = 0;
for (const item in cart){
let quantity = Object.values(cart[item])[0];
let price = Object.values(cart[item])[1];
total += price * quantity;
}
return total; 
}
function printCartInventory(cart) {
let inventory = "";
for (const item in cart){
inventory += `${Object.values(cart[item])[0]}x${item}n`;
}
return inventory;

}
module.exports = {
calculateCartTotal,
printCartInventory,
};

让我困惑的部分是函数calculateCartTotal。我感到困惑的是这个循环是如何知道抓取priceInCents的?例如,如果我要在对象中添加另一个名为"weight: 24"假设它是24克,物体的价值是如何跳过数量和重量而直接抓住价格的呢?希望我对我是如何困惑和有人对我的解释是有意义的!

如果你试着运行下面的程序,那么你会更容易看到所有的东西。

实际情况是item只是元素的索引,对于一个对象,我们可以使用键名来访问它的值或索引。

你可以阅读这个文档来了解Object.values()是做什么的。

function calculateCartTotal(cart) {
let total = 0;
for (const item in cart) {
console.log(item)
let quantity = Object.values(cart[item])[0];
let price = Object.values(cart[item])[1];
total += price * quantity;
}
return total; 
}
var cart = [
{
quantity: 2,
price: 5,
weight: 24
},
{
quantity: 3,
price: 10,
weight: 90
},
{
quantity: 7,
price: 20,
weight: 45
},
{
quantity: 1,
price: 100,
weight: 67
}
]
console.log(calculateCartTotal(cart))

输出:

0
1
2
3
280

程序2演示正在发生的事情

function calculateCartTotal(cart) {
console.log(Object.values(cart[2])[1])
console.log(cart[2]['price'])
console.log(cart[2].price)
}
var cart = [
{
quantity: 2,
price: 5,
weight: 24
},
{
quantity: 3,
price: 10,
weight: 90
},
{
quantity: 7,
price: 20,
weight: 45
},
{
quantity: 1,
price: 100,
weight: 67
}
]
calculateCartTotal(cart)

输出:

20
20
20

我是Deepak,🙂

我可以解释(程序2演示)。看到我的朋友,你将能够看到第一个console.log,即console.log(Object.values(cart[2])[1])…因此,object表示整个购物车,.values表示特定对象所包含的唯一数字。现在,看看结果,即20。那么,这20年是怎么来的呢?现在,查看我之前编写的console.log。在。value购物车[2]的括号中(这意味着2是购物车的位置,这就是为什么它被写为购物车[2],也就是说,在购物车的第二个位置的对象中,在购物车[2]之后,这个数字在那里[1],这意味着在第二个位置的对象中,即 )OBJECT下面:-对象的位置Var cart = [

]
quantity: 2,           0 position
price: 5,
weight: 24
},
{
quantity: 3,           1 position
price: 10,
weight: 90
},
{
quantity: 7,           2 position
price: 20,
weight: 45
} ,
{
quantity: 1,           3 position
price: 100,
weight: 67
}

)

console.log (calculateCartTotal(车)

现在,匹配console.log。
它说console.log(OBJECT.values(cart[2])[1]);

在购物车中,查看第二个位置的对象,即

{数量:7、2位价格:20,体重:45}

所以,购物车[2]意味着整个物体上面。[1]表示对象内部从0开始计数位置。因此,在

values

0仓位数量,7,
1仓位价格,20,2 .位置权重。45 .

在[1]仓位价格:20.

所以,cart[2]表示{数量:7、2位价格:20,体重:45}

,[1]表示价格:20.

那么,你的答案是20。

注意:方括号内的数字将给出对象的位置或对象内部的位置。

相关内容

  • 没有找到相关文章