删除项目后,localStorage.length没有更新(javascript)

时间:2017-05-14 07:59:18

标签: javascript

我有这个:

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'

2 个答案:

答案 0 :(得分:2)

localStorage.removeItem获取先前用于存储值的项的键,如果传递的键未解析为已知的存储键/值对,则不删除任何内容。 delItem是当前localStorage中的键/值对的数量,在您致电removeItem后,您仍然获得localStorage.length的相同值,这意味着您传递的密钥到removeItemdelItem,与先前存储的值不对应,换句话说,该键不存在

答案 1 :(得分:0)

从您的示例中可能看起来您可能正在为您的键/值使用基于0的索引,但是当您获得长度然后尝试从localStorage中删除该项时,您不会考虑这一点。

尝试以下编辑以查看它是否有效。

localStorage.removeItem(delItem-1); //removing the last item on storage