当前位置: 首页 > 面试题库 >

在HTML5和JavaScript中循环遍历localStorage

冉高寒
2023-03-14
问题内容

因此,我以为我可以像普通对象一样遍历localStorage,因为它具有长度。我该如何循环?

localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');

如果我这样做,localStorage.length则返回3正确。所以我认为for...in循环会起作用。

我在想类似的东西:

for (x in localStorage){
    console.log(localStorage[x]);
}

但无济于事。有任何想法吗?

我的另一个想法是

localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');

在其中for...in工作。


问题答案:

您可以使用该key方法。
localStorage.key(index)返回index第一个键(顺序是实现定义的,但是在您添加或删除键之前是恒定的)。

for (var i = 0; i < localStorage.length; i++){
    $('body').append(localStorage.getItem(localStorage.key(i)));
}

如果顺序很重要,则可以存储JSON序列化数组:

localStorage.setItem("words", JSON.stringify(["Lorem", "Ipsum", "Dolor"]));

规范草案声称,任何支持结构化克隆的对象都可以是一个值。但这似乎尚不支持。

编辑:要加载数组,添加到它,然后存储:

var words = JSON.parse(localStorage.getItem("words"));
words.push("hello");
localStorage.setItem("words", JSON.stringify(words));


 类似资料:
  • 问题内容: 以下是提供输出的代码段:。由于访问列表中的数字3,我期望获得输出。在线给出的解释是“每次迭代中更改的价值”,但我不太了解如何或为什么。任何解释都很好! 问题答案: 这里发生的是一个列表在循环过程中发生了变异。 让我们考虑以下代码片段: 输出为: 每次迭代: 从内部指针当前指向的位置读取值 立即将其分配给列表中的最后一个元素 在最后一个元素打印在标准输出上之后 就像这样: 内部指针指向第

  • 我得到一个使用下面的代码的锚的列表,然后我想去每个链接。我想出了下面的代码,但是在第一个循环之后,我得到了以下异常 org.openqa.selenium.staleElementReferenceException:过时元素引用:元素未附加到页面文档(会话信息:Chrome=55.0.2883.87) 有没有办法做到这一点,而不需要每次返回页面?

  • 在给定的数组中,我想计算左边唯一的连续值,这些值小于或等于每个值。 例如在下面的数组中,第一个索引值是100,所以没有比它更小的值,它将是1。对于值70,有60比它小,所以计数是2,依此类推。 注意:这应该使用stack来完成(这是一个stack实践问题)。 我的方法是: 我试图用这种方式解决: 在数组中运行循环,每次向堆栈添加数组值 问题:现在的问题是:因为它第一次会正常工作,但下一次不会。 问

  • 问题内容: 我正在尝试将使用OpenCV收到的先前答案中的C++方法转换为使用OpenCV Java绑定的Java C ++代码: 我不知道如何像在C代码中那样遍历变量。以下是到目前为止我得到的: Java代码: 我经历了API,似乎确实有获取方法,但是我什么也不能调用。 问题答案: 如果确实是 灰色 ,则可能是以下类型: 我没有设置环境来测试此代码。有关更多信息,请检查此线程。 如果您使用的是

  • 我的Flutter项目中有一个Dart枚举,如下所示: 如果我有一些随机枚举状态,如,我如何迭代到下一个枚举(而不需要做一些事情,如用开关语句映射它们)? 我在这个,这个和这个的帮助下找到了答案,所以我把它贴在下面。

  • 我有一个包含许多子目录的目录,其中包括一个名为OLD的目录。这个旧文件夹也可能位于任何子目录中,并包含存档文件 根目录A 文件1。txt 文件2。txt 旧的 文件1。txt 文件1。txt 老 子目录E 文件7。txt 旧的 我需要在Talend中创建一个作业,该作业将查找所有OLD文件夹(在主目录和子目录中)并从该文件夹中删除文件。我可以使用tFilelist来屏蔽要删除的文件。但无法弄清楚如