1

我有以下行为异常的代码块:

//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
4

1 回答 1

1

我猜如果您记录或检查items传递给回调函数的参数的内容,您会发现它具有以下格式:{ data: {...} }. 所以你只需要这样做:

    items.data[url] = info;

    chrome.storage.sync.set(items, function() {});
于 2015-11-02T03:34:29.900 回答