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

boi*_*hos 5 javascript google-chrome google-chrome-extension google-chrome-app

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

{"users":[
    {"password":"123","userName":"alex"},
    {"password":"234","userName":"dena"},
    {"password":"343","userName":"jovit"}
]}
Run Code Online (Sandbox Code Playgroud)

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

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

Rob*_*b W 5

没有神奇的语法可以从存储在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!');
    });
});
Run Code Online (Sandbox Code Playgroud)

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

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