如何在Chrome本地存储中存储Set对象

时间:2016-06-16 05:37:33

标签: javascript google-chrome google-chrome-extension local-storage

var testSet = new Set(); testSet.add(1); testSet.add(2);
chrome.storage.local.set( { 'key': testSet }, function() { chrome.storage.local.get( 'key', function(data){ console.log(data) }); });

此输出

Object {key: Object}
key: Object__proto__: 
Object__proto__: Object

为什么不在那里显示testSet值?

2 个答案:

答案 0 :(得分:2)

实现此目标的一种方法是使用Spread OperatorSet转换为数组。

<强> E.g。

var testSet = new Set(); testSet.add(1); testSet.add(2);
chrome.storage.local.set({ 'key': [...testSet] });

当你想要检索它时,你可以这样做..

chrome.storage.local.get('key', function(data){ 
    var mySet = new Set(data.key);
    console.log(mySet);
})

编辑:感谢Xan的评论注意到chrome.storage可以直接设置数组。

答案 1 :(得分:-1)

来自chrome API文档:

StorageArea.get(string or array of string or object keys, function callback)

所以看起来你只能使用包含基元的基元和对象。