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() {});