Моя цель - проверить, доступно ли уже введенное пользователем значение в поле ввода в массиве, хранящемся в локальном хранилище. Если да, выведите массив, если нет, добавьте новое значение в хранилище. Я возвращаю свой массив при нажатии кнопки, но код работает неправильно. Выход:
["hh", "try", "vogue", "vogue", "try2", "try2", "try2", "try2"]
Над введенными значениями, которые добавляются многократно. Я знаю, что это глупая проблема, но у меня меньше опыта работы с массивами в локальном хранилище. Любая помощь будет оценена. (Я попробовал решения, предложенные в аналогичных вопросах по stackoverflow, но не повезло)
<html class=" reevoomark_ATY">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Special Offers</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="crossorigin="anonymous"></script>
</head>
<body>
<input id="coupon"> <button style="width:50px;padding:10px;background:grey;height:30px;border:1px solid grey" id="button">Apply</button>
<input id="stored">
<script>
var coupons = ['hh'];
var storedNames;
localStorage.setItem("coupons", JSON.stringify(coupons));
$('#button').on('click', function(){
storedNames = JSON.parse(localStorage.getItem("coupons"));
var enteredValue = $('#coupon').val();
for(i=0; i <storedNames.length; i++) {
if(enteredValue === storedNames[i]) {
console.log("value Exist!!");
console.log(storedNames[]);
}
else {
console.log("in else");
coupons.push(enteredValue);
localStorage.setItem("coupons", JSON.stringify(coupons));
storedNames = JSON.parse(localStorage.getItem("coupons"));
}
}
});
</script>
</body>
</html>