我有这个:
var delItem = localStorage.length;
window.alert("this should be localStorage.length: " + delItem);
localStorage.removeItem(delItem); //removing the last item on storage
window.alert("length after removing item: " + localStorage.length);
有人可以告诉我为什么在删除项目之前和之后获得相同的长度?
我忽略的一个细节,如果它具有任何重要性:我存储的键/值对的形式为' number' /' string'例如:' 1' /' 5 * 3456 = 17280'
答案 0 :(得分:2)
localStorage.removeItem
获取先前用于存储值的项的键,如果传递的键未解析为已知的存储键/值对,则不删除任何内容。 delItem
是当前localStorage
中的键/值对的数量,在您致电removeItem
后,您仍然获得localStorage.length
的相同值,这意味着您传递的密钥到removeItem
,delItem
,与先前存储的值不对应,换句话说,该键不存在
答案 1 :(得分:0)
从您的示例中可能看起来您可能正在为您的键/值使用基于0的索引,但是当您获得长度然后尝试从localStorage
中删除该项时,您不会考虑这一点。
尝试以下编辑以查看它是否有效。
localStorage.removeItem(delItem-1); //removing the last item on storage