【问题标题】:localstorage : getAllItems in localstorage except one keylocalstorage :获取本地存储中的所有项目,除了一个键
【发布时间】:2017-07-18 02:26:57
【问题描述】:

我正在修改一个 HTML5 应用程序,该应用程序记录花费在项目、日期和项目代码上的时间。它使用本地存储,本地存储中有两种密钥 - 时间戳密钥和另一种称为“用户详细信息”的密钥。下面的代码列出了存储中的所有数据。我只想列出带时间戳的数据,而不是键“userdetails”中包含的数据。

function getAllItems() {
var timeLog = "";
var i = 0;
var logLength = localStorage.length-1;
var totalHours = 0.0;   

for (i = 0; i <= logLength; i++) {
    var itemKey = localStorage.key(i);
    var values = localStorage.getItem(itemKey);
    values = values.split(";");
    var code = values[0];
    var hours = values[1];
    var date = values[2];

【问题讨论】:

    标签: javascript html local-storage


    【解决方案1】:

    function getAllItems() {
        var timeLog = "";
        var i = 0;
        var logLength = localStorage.length-1;
        var totalHours = 0.0;   
        for (i = 0; i <= logLength; i++) {
            var itemKey = localStorage.key(i);
            if(itemKey == 'timestamped' ){
            var values = localStorage.getItem(itemKey);
            values = values.split(";");
            var code = values[0];
            var hours = values[1];
            var date = values[2];
          }
    
        }
    }
    

    【讨论】:

    • 谢谢维姬。问题是我要列出的所有键都像“1382614467062”或“1382614476654”。没有名为“timestamped”的键有一个键我不想包含“userdetails”。是否可以更改“if(itemKey == 'timestamped'){”以确保不包含“userdetails”?或者可以检查仅包括数字键。再次感谢您
    • 我会检查,但至少要投票并更正答案:))))
    【解决方案2】:

    这将吐出除了userDetails之外的所有键:

    function getAllItems() {
        // housekeeping
        var timeLog = ""
            , i = 0
            , logLength = localStorage.length-1
            , totalHours = 0.0
            , theKeyToIgnore = 'userDetails'
        ;   
    
        // loop through all keys
        for( i = 0; i <= logLength; i++ ) {
            var itemKey = localStorage.key( i )
                , values = localStorage.getItem( itemKey )
            ;
    
            // is this the ignored key? then skip a loop iteration 
            if( itemKey === theKeyToIgnore ) { continue; }
    
            values = values.split( ";" );
    
            // set our data
            var code    = values[ 0 ]
                , hours = values[ 1 ]
                , date  = values[ 2 ]
            ;
    
            // display it
            console.log( itemKey + ' => ' + code + ' ' + hours + ' ' + date );
    
            // tally total hours
            totalHours += parseFloat( hours ); 
        }
    
        // display total hours
        console.log( 'total hours: ' + totalHours );
    }
    
    
    > getAllItems();
      1382614467062 => 100 7 10/01/2013
      1382614476654 => 200 3 10/02/2013
      1382703706453 => 123 6 10/16/2013
      total hours: 16
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      相关资源
      最近更新 更多