我的变量date_mplayer
只存储一个PHP生成的time()
标记。我需要创建一个带有键/值对的数组,其中键和值最初都是来自date_mplayer
的相同时间戳。
目前我得到了什么:
var md = {date_mplayer:date_mplayer};
localStorage.setItem('date_mplayer', JSON.stringify(md));
如果我console.log(localStorage);
我得到......
date_mplayer "{"date_mplayer":1427837963}"
我需要的东西应该是:
date_mplayer "{1427837963:1427837963}"
背景:这是我根据每个标签的指定日期将功能命令传递给选项卡的方式。使用选项卡键表示的更新时间戳重建JSON对象的每X个秒数;标签在一段时间内未更新几秒钟就会删除其密钥(以防止永久增长,直到达到浏览器存储限制)。
没有框架。
答案 0 :(得分:1)
var md = {};
md[date_mplayer] = date_mplayer;
localStorage.setItem('date_mplayer', JSON.stringify(md));
答案 1 :(得分:1)
当用对象文字语法编写时,对象键是非动态的;也就是说,你不能在他们的位置使用变量。键将按字面意思命名您在那里键入的内容,所以:
var foo = 'bar', obj = {foo: foo};
obj.foo; //bar
obj.bar; //undefined
相反,要设置动态密钥名称,您需要在创建对象后通过方括号语法设置密钥,并将密钥名称作为字符串传递:
var foo = 'bar', obj = {};
obj[foo] = foo;
obj.bar; //bar