【问题标题】:(javascript) local storage value update(javascript) 本地存储值更新
【发布时间】:2023-03-18 09:31:02
【问题描述】:

我将数据设置为本地存储中名为“todo”的键。

结构是这样的。

key: todo
value : [{"text":"sdf","idx":1,"curTime":"Sun Dec 22 2019","finYN":""}]

单击按钮时,我想在 finYN 为空或“N”时更新为“Y”。


如果这是我当前的本地存储结构,我可以使用此代码,但我不知道如何处理当前结构。

key: text / value : "sdf"
key: idx / value : 1
key: finYN / value : "Y"

localStorage.setItem("finYN", JSON.stringify("Y"));

【问题讨论】:

    标签: javascript local-storage


    【解决方案1】:

    Localstorage 值是纯字符串,因此您无法操作字符串化对象。您将不得不替换整个值。

    var todos = JSON.parse(localStorage.getItem('todo'));
    if(!todos[0]['finYN']){
      todo['finYN'] = 'Y';
      localStorage.setItem('todo',JSON.stringify(todos))
    }
    
    

    【讨论】:

      【解决方案2】:

      如果将值保存为字符串:

      localStorage.setItem('todo', JSON.stringify({"text":"sdf","idx":1,"curTime":"Sun Dec 22 2019","finYN":""}));
      

      然后您可以获取该 localStorage 键的值并将其转回 JSON:

      var json = JSON.parse(localStorage.getItem('todo'));
      

      从这里您可以通过访问 json.finYN 然后更改 JSON 轻松检查该值,完成后,您可以再次将其存储为字符串。

      【讨论】:

      • "todo" 是一个动态值。例如,它可以是“text”:“123”或“text”:“456”。不能只更新“finYN”值吗?感谢您的回答。
      • 你可以,这只是一个例子,你可以用json.finYN = 'Y'更改它,然后保存它并保留其余的值
      猜你喜欢
      • 2018-02-18
      • 2017-04-20
      • 1970-01-01
      • 2022-01-25
      • 2015-06-14
      • 2014-03-22
      • 1970-01-01
      • 2020-10-27
      • 2020-07-07
      相关资源
      最近更新 更多