Javascript Chrome.storage将值附加到对象

Javascript Chrome.storage将值附加到对象,javascript,google-chrome-extension,google-chrome-storage,Javascript,Google Chrome Extension,Google Chrome Storage,我有以下代码块出现意外行为: //Where url and info are strings function addURL(url, info){ chrome.storage.sync.get("data", function(items) { items[url] = info; chrome.storage.sync.set({"data" : items}, function() {}); }); } 我的目标是从存储器中取出“数

我有以下代码块出现意外行为:

//Where url and info are strings
function addURL(url, info){
    chrome.storage.sync.get("data", function(items) {
        items[url] = info;

        chrome.storage.sync.set({"data" : items}, function() {});
    }); 
}
我的目标是从存储器中取出“数据”键值对,用url键和分钟值为该对象添加一个新索引,然后用新的值替换以前的“数据”值

相反,我创建了一个嵌套结构,在该结构中,此代码第一次正确执行,但在随后的添加中,对象内部会出现嵌套的“数据”块,如下所示:

data
  url3 -> info3
  data
    url2 -> info2
        data
        url1 -> info1
而我所期望的是

data
    url1 -> info1
    url2 -> info2
    url3 -> info3

我想如果您记录或检查传递给回调函数的参数
项的内容,您会发现它的格式是:
{data:{…}}
。 所以你只需要做:

    items.data[url] = info;

    chrome.storage.sync.set(items, function() {});