/*
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。
注意:方括号内的数字将给出对象的位置或对象内部的位置。