【问题标题】:Jstorager : Can't save my updated arrayJstorager:无法保存我更新的数组
【发布时间】:2014-05-27 22:35:52
【问题描述】:

我编写了 3 个小函数,用于保存、加载或删除使用 jstorage 保存的数组中的单个条目。

前两个功能完美运行。

但是删除单个条目的系统会系统地删除整个数组或不保存它。

谁能指出我的问题,这可能在我的代码中?

function local_single_delete(poi_id){
    if ($.jStorage.storageAvailable()== true) { // if local storage is available
        loctab = $.jStorage.get("poi_ids");     // load saved data
        if (loctab == null) {                   // if no saved data => null array
            loctab = new Array();   
            console.log('loctab is null');
        }
        for (local_i = 0; i < loctab.length; local_i++ ){       // for each saved data , looking for one one in particular
            if (loctab[local_i]['id_poi'] === poi_id) {         // if found
                loctab[local_i]= loctab[loctab.length-1];       // the one becomes the last entry value, 
                loctab.length =loctab.length -1;                // then we truncate the array for one position
                break;                                          // and we leave the for
            }
        }        
        $.jStorage.set("poi_ids",loctab);                       // write data 
        $.jStorage.flush();                                     // clear cache
    }
    else {
        console.log('on a pas de stockage local');
    }


}

【问题讨论】:

    标签: javascript jquery arrays local-storage jstorage


    【解决方案1】:

    Solution

    刷新时会删除所有数据……所以不要这样做!您还有一个未声明的 i 变量。

    function local_single_delete(poi_id){
      if ($.jStorage.storageAvailable() === true) { 
        loctab = $.jStorage.get("poi_ids"); 
        if (loctab === null) {   
          loctab = [];   
          console.log('loctab is null');
        }
        for (local_i = 0; local_i < loctab.length; local_i++ ){
          if (loctab[local_i].id_poi === poi_id) {    
            loctab[local_i]= loctab[loctab.length-1];  
            loctab.length =loctab.length - 1;
            break;                            
          }
        }        
        $.jStorage.set("poi_ids",loctab);         
      }
      else {
        console.log('on a pas de stockage local');
      }
    }
    

    【讨论】:

    • 您的更正效果很好。非常感谢,我没看出来。
    猜你喜欢
    • 1970-01-01
    • 2019-11-01
    • 2014-01-14
    • 2016-09-04
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多