gpt4 book ai didi

javascript - 本地存储3个对象

转载 作者:行者123 更新时间:2023-11-28 15:46:52 26 4
gpt4 key购买 nike

可以将 3 个对象添加到本地存储,而不仅仅是值和键?我尝试了一些代码但不起作用。

我想要:

  1. 3 个对象
  2. 3个输入文字
  3. 保存按钮,用于保存页面上的文本

最佳答案

不,你不能。 localStorage(和sessionStorage)只能存储键值对,其中值只能是字符串

您能做的最好的事情就是使用某种序列化算法来存储普通对象。 JSON 是最常见的,因此您可以使用 JSON.stringify 将对象转换为字符串,使用 JSON.parse 将其转换回对象 - 这将<不是“相同”(即对相同数据的引用),而是等价的东西。

这意味着发生这种情况:

var a = {value: 5},
j = JSON.stringify(a);

var b = a,
c = JSON.parse(j);

a.value = 7;
b.value; // 7
c.value; // 5

但这无论如何都不适用于 DOM 元素。它们无法存储,期间。就像任何非 Object 类的任何其他对象一样,除非它们提供了 toJSON 方法来可靠地将它们转换为字符串,最终可以解析回来。

JSON.stringify 在内部使用 toJSON 方法将对象转换为字符串。

例如,

Date 对象提供 toJSON 方法。您可以使用 Date.parse 将字符串转换回来:

var d = new Date(),
j = d.toJSON(); // e.g. "2014-02-22T10:35:41.579Z"

var o = new Date(Date.parse(j));

o.getTime() === d.getTime(); // true
o === d; // false

(请记住,IE7 及更低版本本身不支持 JSON。)

但是,您不能对 DOM 元素执行相同的操作,因此 2 和 3 不可行。

关于javascript - 本地存储3个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com