@Addvencher

Как сложить суммы в одно значение из JSON?

Нигде не могу найти как решить эту проблему. Суть заключается в том, что есть корзина покупателя, пользователь кладёт в корзину n товаров и рядом с товаром выводится сумма(умножается кол-во на стоимость 1 товара), и нужно чтобы все эти суммы также суммировались в 1 значение(надо - итого: ****). Если не трудно, буду очень рад готовому решению, так так пока учусь и мало чего понимаю из javascript'a
kLajs4PoqNw.jpg
Сам код:
var cart = {};
function loadCart() {
    if (localStorage.getItem('cart')) {
        cart = JSON.parse(localStorage.getItem('cart'));
        	showCart();
        }
    else {
    	$('.page-cart').html('В корзине нет товаров.');
    }
}

function showCart() {
	if (!isEmpty(cart)) {
       	$('.page-cart').html('В корзине нет товаров.');
    }
    else {
		$.getJSON('goods.json', function (data) {
			var goods = data;
			var out = '';
			for (var id in cart) {
				out += '<div class="page-cart__item">';
				out += '<img src="img/'+goods[id].img+'">';
				out += '<p class="cart-name">'+goods[id].name+'</p>';
				out += '<button data-id="'+id+'" class="minus-goods">-</button>';
				out += '<div class="cart-number">'+cart[id]+'</div>';
				out += '<button data-id="'+id+'" class="plus-goods">+</button>';
				out += '<div class="cart-cost">'+cart[id]*goods[id].cost+' руб.</div>';
				out += '<button data-id="'+id+'" class="del-goods">x</button>';
				out += '<br>';
				out += '<hr>';
				out += '</div>';
			}
			$('.page-cart').html(out);
			$('.del-goods').on('click', delGoods);
			$('.plus-goods').on('click', plusGoods);
			$('.minus-goods').on('click', minusGoods);
		});
	}
}


function delGoods() {
	var id = $(this).attr('data-id');
	delete cart[id];
	saveCart();
	showCart();
}

function plusGoods() {
	var id = $(this).attr('data-id');
	cart[id]++;
	saveCart();
	showCart();
}

function minusGoods() {
	var id = $(this).attr('data-id');
	if (cart[id]==1) {
		delete cart[id];
	} else {
		cart[id]--;
	}
	saveCart();
	showCart();
}

function saveCart() {
    localStorage.setItem('cart', JSON.stringify(cart));
}

function isEmpty(object) {
    for (var key in object)
        if (object.hasOwnProperty(key)) return true;
    return false;
}

$(document).ready(function () {
	loadCart();
});
  • Вопрос задан
  • 447 просмотров
Решения вопроса 1
vman
@vman
в функции

function showCart() {

объявите доп. переменную total и в цикле присваивайте ей значение

total += cart[id]*goods[id].cost;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы