对象数组



嘿,伙计们,我希望有人能帮助我。我有一个对象数组

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来过滤数据,但是您可以使用filterreduce方法。

相关内容

  • 没有找到相关文章

最新更新