【问题标题】:localstorage key numbering breaks when removing an item删除项目时本地存储键编号中断
【发布时间】:2021-12-26 12:50:41
【问题描述】:

不要担心它是怎么变成这样的,但这就是我的本地存储的样子:

它应该是这样的:

这就是我的循环的样子:

for(let i=0;i<localStorage.length;i++){
//I do something cool
}

现在假设同样的编号错误发生在 15 个值上。如何更改 localstorage 中的键列,使其从 0 开始并为每个值缩进 1,或者我的循环,使其从第一个键运行到最后一个键。

【问题讨论】:

  • 您为什么还要关心i 是否匹配?你已经有了Key
  • 怎么样? -> 使用实际数组(使用JSON.stringify() / JSON.parse()
  • @VLAZ 如果我在整个循环中不匹配,则循环要么不会针对所有值运行,要么会为缺失值返回 NULL。
  • @Andreas 如果我将 localstorage 转换为数组,键值仍然是错误的,不是吗?
  • @BalderKun 但您的屏幕截图显示您有一个名为Key 的东西。如果您只使用 Key 字段,那么 i 是什么并不重要。我错过了什么?

标签: javascript loops for-loop local-storage


【解决方案1】:

localStorage 适用于键和值。您可以像 javascript 对象一样循环遍历它。

for (const [key, value] of Object.entries(localStorage)) {

}

【讨论】:

  • 请注意,for (const key in localStorage) 将捕获所有键,包括 localStorage 方法及其长度。
  • 是的@Alaa。我是在测试之前写的...
【解决方案2】:

您可以捕获数组中的所有键,然后在代码中使用该数组。

    const lsKeys = Object.keys(localStorage);
    for(let i = 0; i < lsKeys.length; i++) console.log(localStorage[lsKeys[i]]);

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2012-02-27
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多