Javascript Localstorage: сравнение входного значения со значением, хранящимся в массиве в localstorage - PullRequest
0 голосов
/ 01 июля 2018

Моя цель - проверить, доступно ли уже введенное пользователем значение в поле ввода в массиве, хранящемся в локальном хранилище. Если да, выведите массив, если нет, добавьте новое значение в хранилище. Я возвращаю свой массив при нажатии кнопки, но код работает неправильно. Выход: ["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>

1 Ответ

0 голосов
/ 01 июля 2018

Вы хотите нажать на имена, если их нет в сохраненных именах. См. Прикрепленный код.

    <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'];
            localStorage.setItem("coupons", JSON.stringify(coupons));
            $('#button').on('click', function(){
                var storedNames = JSON.parse(localStorage.getItem("coupons"));
                var enteredValue = $('#coupon').val();
                if (storedNames.includes(enteredValue)) {
                    console.log("value Exist!!");
                  console.log(storedNames);
                } else {
                    console.log("in else");
                  storedNames.push(enteredValue);
                  localStorage.setItem("coupons", JSON.stringify(storedNames));
                }
            });



    </script>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...