【问题标题】:Remove json object in localstorage using js使用js删除localstorage中的json对象
【发布时间】:2015-03-24 01:39:46
【问题描述】:
[{'id':1,'content':'something'},{'id':2,'content':'something diff'},{'id':3,'content':'something diff'}]

by localStorage.getItem('data')我得到了上面的json对象,但是如何删除id 2项呢?

【问题讨论】:

标签: javascript json local-storage


【解决方案1】:

假设您已将本地存储数据 JSON.parse 到一个数组中,您可以像从任何其他数组中删除第二项一样,通过弹出它。

var data = localStorage.getItem('data');
// At this point, data is either null or a string value.
// To restore the string to an Array you need to use JSON.parse
if (data) {
  data = JSON.parse(data);

  // At this point you can use Array methods like pop or splice to remove objects.
}
// At this point, your Array will only contain the first item.
// If you want to write it back to local storage, you can like so:
// Be sure to use JSON.stringify so it can later be restored with parse.
localStorage.setItem('data', JSON.stringify(data));

【讨论】:

  • 需要最后一行吗?
  • 只有当你想将值写回本地存储时才需要最后一行。我应该指定的。 :)
  • 如果我有超过 2 件商品怎么办? .pop 还能用吗?
  • 此时您只是在询问如何从数组中删除项目。这与您的 SO 问题的标题非常不同。
【解决方案2】:

这会将“数据”转换为 javascript 对象并删除最后一项(假设这始终是一个数组):

var data = localStorage.getItem('data');
if (data) {
   data = JSON.parse(data);
   data.pop();
}

【讨论】:

  • .pop 删除最后一项?我想和id匹配。
  • 我刚刚注意到@brianvaugn 的回答。我想他打败了我的。奇怪的是我们是一样的。
  • 没那么奇怪!只有一种明显的方法可以解析本地存储数据并从数组中删除最后一项。 :)
  • 哈哈,是的。还是很好笑的。我看了你的代码大约 20 秒,试图记住我何时将 data 添加回 localStorage。我以为我在看我的代码! :D
猜你喜欢
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 2019-02-12
  • 2019-02-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多