How to increment a value at localStorage

前端 未结 2 1921
时光说笑
时光说笑 2020-12-07 02:54

I have some values that are dynamically stored at localStorage with incremented values like this: localStorage[\"Value0\"], localStorage[\"Value1\"],....

When I try

相关标签:
2条回答
  • 2020-12-07 03:24

    To fix the problem of getting 01, simply convert the variable to a number:

    var i = +localStorage.getItem('Counter'); // or +localStorage.Counter;
    

    If you want an incremental key name, the following code can also be used (provided that you don't delete keys in between):

    var keyname = 'Value' + localStorage.length;
    localstorage.setItem(keyname, value);
    
    0 讨论(0)
  • 2020-12-07 03:32

    LocalStorage can only store string values. You can use parseInt which converts a string into an integer:

    var new_value =  parseInt(localStorage.getItem('num')) + 1
    

    You can also use libraries like store.js to do things automatically for you. All you have to do is to include the library:

    <script src="store.js"></script>
    

    Set a new storage:

    var numbers = new Store("numbers")
    

    Put things into it:

    numbers.set('num', 2)
    

    Get the value and do anything you want with it:

    numbers.get('num') + 1 //output: 3
    

    And you can also go crazy and use some arrays:

    numbers.set('nums', [1,2,3])
    

    And change things inside it:

    numbers.get('nums')[0] + 3 //output: 4
    

    No type conversion needed. You can also store objects, booleans and other stuff. Just don't forget to save things back in the storage since it doesn't automatically do it.

    0 讨论(0)
提交回复
热议问题