Javascript Localstorage:将输入值与本地存储在数组中的值进行比较

时间:2018-06-30 21:50:37

标签: javascript local-storage

我的目的是检查用户在输入字段中输入的值在本地存储中的数组中是否已经可用。如果是,则打印阵列(如果未在存储中添加新值)。我在单击按钮后又将阵列重新放置,但是代码无法正常工作。输出为: [“ hh”,“ try”,“ vogue”,“ vogue”,“ try2”,“ try2”,“ try2”,“ try2”]

上面是重复添加的输入值。我知道这是一个愚蠢的问题,但是在本地存储中处理数组的经验最少。任何帮助,将不胜感激。 (我尝试过类似问题的解决方案,但没有运气)

<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 :(得分:0)

如果存储的名称中不存在名称,则要推送名称。请参阅随附的代码。

    <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>