@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();
});
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
vman
@vman
в функции

function showCart() {

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

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

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

Войти через центр авторизации
Похожие вопросы
RealtimeBoard Пермь
от 90 000 до 140 000 руб.
Smartbics Нижний Новгород
от 50 000 до 70 000 руб.
//stablecode Вена
от 110 000 до 140 000 руб.
21 февр. 2019, в 02:24
8 руб./в час
20 февр. 2019, в 23:54
1000 руб./за проект
20 февр. 2019, в 23:26
25000 руб./за проект