chrome.storage从数组中删除特定项

时间:2014-07-30 08:27:56

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

这是存储在我的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!');
});

1 个答案:

答案 0 :(得分:4)

没有神奇的语法只能从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

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