Javascript 在 localStorage 中存储字符串变量的实际名称而不是它的值

Javascript storing actual name of a string variable rather than its value in localStorage

我想每天生成一个新的字符串变量,并作为一个新条目存储到本地存储中。字符串的格式为 "timeDataXXXX",其中 XXXX 是显示自 1970 年 1 月 1 日午夜以来的天数的数字。XXXX 由函数 numDaysSinceUTC();

计算并返回

这是我尝试做的

var newStorageName = "timeData" + numDaysSinceUTC();

然后我将它送入本地存储

chrome.storage.local.set({newStorageName : 0}, function(){});

然后,当我检查本地存储的内容而不是获取与格式对应的内容时,我得到字面上的 "newStorageName" 作为内容(键),变量名而不是它的值。最终覆盖。怎么了?

您需要单独创建您的对象。您不能使用对象文字语法创建动态 属性 名称。相反,首先创建对象,然后使用方括号表示法添加 属性:

var obj = {};
obj[newStorageName] = 0;
chrome.storage.local.set(obj, function(){});
var data = numDaysSinceUTC();
localStorage.setItem("KeyName",data);