Как можно вывести сумму многомерного объекта
Есть объект cartData и функция setItemTotal. Все работает. Но, теперь не могу додумать, как сделать функцию getObjTotal, чтобы она возвращала сумму setItemTotal объектов внутри главного объекта.
var cartData = {
"1": {
"id": 1,
"image": "/public/assets/media/uploads/products/Инсталляция под унитаз/Installyaciya.jpg",
"title": "Инсталляция под унитаз",
"slug": "installyaciya-pod-unitaz",
"quantity": 1,
"price": "2043.00"
},
"5": {
"id": 5,
"image": "/public/assets/media/uploads/products/Title/Title.jpg",
"title": "Title",
"slug": "title",
"quantity": 1,
"price": "1144.00"
}
}
function setItemTotal(obj) {
itemTotal = 0;
for(let item in obj) {
let price = clearPrice(obj[item]['price']);
let quantity = Number(obj[item]['quantity']);
itemTotal = price*quantity;
}
return number_format(itemTotal/100, 2, ',', '');
}
Ответы (1 шт):
Автор решения: nazarpunk
→ Ссылка
const cartData = {
"1": {
"id": 1,
"image": "/public/assets/media/uploads/products/Инсталляция под унитаз/Installyaciya.jpg",
"title": "Инсталляция под унитаз",
"slug": "installyaciya-pod-unitaz",
"quantity": 1,
"price": "2043.00"
},
"5": {
"id": 5,
"image": "/public/assets/media/uploads/products/Title/Title.jpg",
"title": "Title",
"slug": "title",
"quantity": 1,
"price": "1144.00"
}
};
const getObjTotal = cars => {
let total = 0;
//for (const [, car] of Object.entries(cars)) total += car.quantity * car.price;
for (const {quantity,price} of Object.values(cars)) total += quantity * price;
return total;
};
//const getObjTotal = cars => Object.values(cars).reduce((total, car) => total + car.price * car.quantity,0);
console.log(getObjTotal(cartData));