【问题标题】:chrome.storage remove specific item from an arraychrome.storage 从数组中删除特定项目
【发布时间】:2014-09-21 19:31:44
【问题描述】:

这是存储在我的 chrome 本地存储中的 JSON

{"users":[
    {"password":"123","userName":"alex"},
    {"password":"234","userName":"dena"},
    {"password":"343","userName":"jovit"}
]}

是否可以删除“用户”中的特定项目? 我试过这段代码,但没有运气

chrome.storage.local.remove('users[0]', function(){
    alert('Item deleted!');
});

【问题讨论】:

标签: javascript google-chrome google-chrome-extension google-chrome-app


【解决方案1】:

没有神奇的语法可以从存储在chrome.storage 的数组中只删除一个元素。为了从数组中删除一个项目,您必须检索存储的数组,丢弃不需要的项目(或等效地,只保留您想要保留的项目),然后再次保存数组:

chrome.storage.local.get({users: []}, function(items) {
    // Remove one item at index 0
    items.users.splice(0, 1);
    chrome.storage.set(items, function() {
        alert('Item deleted!');
    });
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

请注意,如果要删除一个或多个值满足某个条件的项目,则必须以相反的顺序遍历数组。否则,您最终可能会删除错误的项目,因为在删除第一个项目后,后面元素的索引会关闭一个,当您删除两个项目时会关闭两个,等等。

【讨论】:

  • 啊,我明白了。我认为有一个内置的功能。好的,我会使用这个解决方案
  • @AlexCoroza 没有这样一个函数的原因是,尽管自动接受和返回 JSON 兼容的值,chrome.storage 将它们序列化,因此它的数据库由没有“sub-项目”。
猜你喜欢
  • 2016-12-19
  • 2012-02-21
  • 2016-07-30
  • 1970-01-01
  • 2021-04-20
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多