【问题标题】:How to set variable key and value in Google Chrome local storage sync? [duplicate]如何在 Google Chrome 本地存储同步中设置变量键和值? [复制]
【发布时间】:2016-12-11 07:34:28
【问题描述】:

我正在使用 Chrome 版本的 localStorage (chrome.storage.sync),我想在设置要存储的数据时使用变量键和值。

我希望能够做这样的事情:

chrome.storage.sync.set({ user: id }, callback);

用户和 id 是动态生成的。

这个:

var user = "Bob";
var id = "81256309";

chrome.storage.sync.set({ user: id }, callback);

不起作用,因为它不会将 userid 解释为它们的基础字符串值,因此会使用以下对象同步到 Chrome:{ user: id }

I know how to do this with normal JavaScript objects 但该线程中的方法在这种情况下不起作用,因为我无法控制我的 Google 帐户的 storage.sync 对象。

【问题讨论】:

  • var obj = {}; obj [用户] = id; chrome.storage.sync.set(obj,callback)
  • @kzahel 感谢您的快速回复。我以后如何使用 chrome.storage.sync.get 检索它?
  • @kzahel 不幸的是,我不认为您的方法适用于多个键值对,因为如果我这样做 var obj = {}; obj[user] = id; chrome.storage.sync.set(obj,callback) 然后 var obj = {}; obj[user2] = id2; chrome.storage.sync.set(obj,callback) 第一个 obj 被覆盖。
  • @kzahel 我想您可以将 obj 重命名为 obj + 一些随机生成的 id,但是当您以后想要获取数据时,就会出现引用问题
  • @kzahel 在同一个 obj 中创建多个 KV 对并使用 chrome.storage.sync.get items.obj[user] 访问它是另一种可能性,但这意味着每个 get 请求都会返回所有数据,这并不理想因为它会严重限制您可以存储的数据量

标签: javascript google-chrome object google-chrome-extension ecmascript-6


【解决方案1】:

Computed property names in ES6,你可以使用

chrome.storage.sync.set({ [user]: id }, callback);

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 2020-07-06
    • 2016-10-31
    • 2011-02-07
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 2014-06-02
    相关资源
    最近更新 更多