嘿,伙计们,我希望有人能帮助我。我有一个对象数组
const users = [
{
id: "2222",
name: "Peter",
age: 20,
carts: [
{
productId: "1a3va",
price: 3.44,
quantity: 3,
},
{
productId: "3adf4",
price: 8.44,
quantity: 5,
},
],
},
{
id: "43443",
name: "John",
age: 24,
carts: [
{
productId: "2334a",
price: 13.44,
quantity: 13,
},
{
productId: "4234d",
price: 1.44,
quantity: 1,
},
],
},
];
然后我的任务是函数invoiceCustomer
->根据建议的参数,返回给定客户购物车中商品的总价值。对于totalOrderValue
,它应该返回订单的总价值。
function invoiceCustomer(users, id, name, age) {}
function totalOrderValue(order) {}
我已经尝试过map和reduce,但即使我使用parseInt也会得到NaN错误。
我希望有人能帮我解决这个问题。谢谢!我想这应该可以。
function totalOrderValue(users, id, name, age) {
let user = users.filter( (item, index, array) => {
// Used only one criteria (id) for example simplicity
return item.id === id;
});
if (user.length === 1) {
return user[0].carts.reduce((prevValue, item) => {
return prevValue + (item.price * item.quantity);
}, 0); // Important: initialize prevValue to 0
} else if (user.length === 0) {
throw 'User not found';
} else {
throw 'Too many users found';
}
}
我无法帮助您使用totalOrderValue
函数,因为没有orderId来过滤数据,但是您可以使用filter
和reduce
方法。