Показать сообщение отдельно
  #6 (permalink)  
Старый 28.08.2019, 18:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я вам же предлагал как хранить товары, не плоско, а деревом. То есть должно быть типа:

var gods = {
    "man" : {
        "1" : {
            "name" : "Рубашка №1",
            "price" : 1000,
            "country" : "argentina",
            "image" : "images/1.jpg",
            "brand": "M"
        },
        "2" : {
            "name" : "Рубашка №2",
            "price" : 1000,
            "country" : "argentina",
            "image" : "images/2.jpg",
            "size": "M"
        },
        "3" : {
            "name" : "Рубашка №3",
            "price" : 1000,
            "country" : "argentina",
            "image" : "images/3.jpg",
            "brand": "M"
        },
        "4" : {
            "name" : "Рубашка №4",
            "price" : 1000,
            "country" : "argentina",
            "image" : "images/4.jpg",
            "brand": "M"
        }
    },
    "woman" : {
        "1" : {
            "name" : "Платье №1",
            "price" : 1000,
            "country" : "brazil",
            "image" : "images/a.jpg",
            "brand": "L"
        },
        "2" : {
            "name" : "Платье №2",
            "price" : 1000,
            "country" : "brazil",
            "image" : "images/b.jpg",
            "brand": "L"
        },
        "3" : {
            "name" : "Платье №3",
            "price" : 1000,
            "country" : "brazil",
            "image" : "images/e.jpg",
            "brand": "L"
        }
    }
};


Соответственно страницы имеют ключ либо man, либо woman (var sex). Это позволяет не перебирать весь объект при выводе, а получать из объекта только нужное для страницы. Это заменить, так как ничего проверять не надо:

for (var key in data) заменить на for (var key in data[sex]), а for if (data[key]['sex'] != sex) { continue; } удалить из кода.

Первичными ключами товаров служат идентификаторы. Они должны быть уникальны либо у всех товаров, если предполагается вывод всех товаров на одну страницу, либо в пределах каждого из ключей страниц (man и woman) если нет. Уникальность означает, что если к примеру удален товар с идентификатором 3, то этот идентификатор нельзя уже использовать для другого товара.

В корзину же нужно писать ключ страницы и идентификаторы выбранных товаров, то есть что-то:

{"man" : [2,4], "woman": [1,2]}.

Каждая из страниц всегда загружает объект товаров, следовательно всю другую информацию о товарах для корзины можно получить из объекта по ключам страниц и идентификаторам, которые записаны в корзине. Если есть отдельная страница для корзины, то в ней нужно также получать с сервера json с товарами.

У вас неудобная организация объекта (json), и как следствие есть лишнее и ненужное в коде.

Последний раз редактировалось laimas, 28.08.2019 в 19:25.
Ответить с цитированием