我有以下意外行为的代码块:
//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”值
相反,我正在创建一个嵌套结构,其中此代码在第一次正确执行时,但在后续添加时,对象内部会出现嵌套的“数据”块,如下所示:
data
url3 -> info3
data
url2 -> info2
data
url1 -> info1
虽然我期待的是
data
url1 -> info1
url2 -> info2
url3 -> info3
答案 0 :(得分:1)
我想如果您记录或检查传递给回调函数的参数items
的内容,您会发现它的格式为:{ data: {...} }
。
所以你只需要这样做:
items.data[url] = info;
chrome.storage.sync.set(items, function() {});