如果我只使用整数作为键,如何在本地存储中获取最后插入的键?
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?