如果我只使用整数作为键,如何在本地存储中获取最后插入的键?

Posted

技术标签:

【中文标题】如果我只使用整数作为键,如何在本地存储中获取最后插入的键?【英文标题】:if I am using only integers as keys how can get last inserted key in localstorage? 【发布时间】:2014-04-26 18:30:58 【问题描述】:

我正在尝试构建一个注册表单并使用本地存储来保存详细信息。在向 locastorage 添加另一个表单详细信息时,我想知道最后插入的键的值是什么,以便我可以增加它并可以插入带有增加的键值的新记录。

如何做到这一点。如果我删除任何记录,我当前的代码将覆盖这些值,因为我正在计算存储中可用的键。

      function setlocal()
      var o = ;
      var ff = $('#myform').serializeArray();

      $.each(ff, function() 
          if (o[this.name] !== undefined) 
              if (!o[this.name].push) 
                  o[this.name] = [o[this.name]];
              
              o[this.name].push(this.value || '');
           else 
              o[this.name] = this.value || '';
          
      );
      var tt = JSON.stringify(o);
      localStorage.setItem(localStorage.length+1, tt);
      $('#afterInsert').text('data added sucessfully');
      return true;
  

有什么建议吗?

【问题讨论】:

类似问题 - ***.com/questions/16628756/… 【参考方案1】:

为什么不能将最后插入的密钥存储在单独的属性中

var lastKey = parseInt(localStorage.getItem('lastKey'));
var newKey = lastKey + 1 || 1;
localStorage.setItem(newKey , tt);
localStorage.setItem('lastKey', newKey);

【讨论】:

【参考方案2】:

这应该可行:

var largestKey = Object.keys(localStorage)
  .filter(isFinite)
  .reduce(function(a, b) 
    return Math.max(a, b);
  , 0);

【讨论】:

感谢您提出建议。我不精通js。所以姐姐不要使用数学库

以上是关于如果我只使用整数作为键,如何在本地存储中获取最后插入的键?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用变量的值作为键名在 chrome 扩展中使用 chrome.storage?

如何在 Python 中直接获取字典键作为变量(而不是通过从值中搜索)?

我只需要存储信用卡的最后 4 位数字

我可以使用啥查询从选定键值的本地存储中获取数据

HashMap 和 int 作为键

主键同时具有整数和字符串的左连接