JSFiddle - React, Tailwind, and code Playground
HTML
<button onClick = "ObjParse(article_1);">Article 1</button>
<br>
<button onClick = "ObjParse(article_2);">Article 2</button>
<br>
<button onClick = "ObjParse(article_3);">Article 3</button>
<br>
<button onClick = "ObjParse(article_4);">Article 4</button>
CSS
button {
margin: 10px;
}
JavaScript
//Создаем класс товаров
function Article(name, price) {
this.name = name;
this.price = price;
};
//Создаем объекты класса Article
var article_1 = new Article ("Article 1", "10"),
article_2 = new Article ("Article 2", "20"),
article_3 = new Article ("Article 3", "30"),
article_4 = new Article ("Article 4", "40");
//Добавление раcпарсенного объекта в локальное хранилище
function ObjParse(a) {
//Цикл прохода по локальному хранилищу
for (i=0; i<4; i++) {
//Если в лоакл.хран-ще есть ключ с таким же аргументом, НЕ добавляем товар
if (localStorage.getItem(a.name) == a.name) {
alert ("Этот товар уже в корзине!");
break;
}
//Если нету, пусть имя товара будет его ключем, а список свойств - значением
else {
localStorage.setItem(a.name, JSON.stringify(a));
alert ("Товар " + a.name + " добавлен в локальное хранилище");
break;
}
}
}
//Тестировка поиска по локальному хранилищу
console.log(article_1.name);
console.log((JSON.parse(localStorage.getItem(article_3.name))).name);
//После того, как интерпретатор видит, что такого объекта нет в локальном хранилище, он прерывает работу(?)
console.log(localStorage.getItem(article_4));