JavaScript JSON关联对象键和值都作为日期时间戳


JavaScript JSON associative object key and value both as datetime stamp

我的变量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}"

背景:这就是我将如何根据每个选项卡的指定日期在选项卡之间向音乐播放器传递功能命令。每隔X秒,JSON对象将使用选项卡密钥表示的更新时间戳进行重构;在几秒钟内没有更新的选项卡将被删除其密钥(以防止永久增长,直到达到浏览器存储限制)。

没有框架。

var md = {};
md[date_mplayer] = date_mplayer;
localStorage.setItem('date_mplayer', JSON.stringify(md));

对象键在以对象文字语法编写时是非动态的;也就是说,你不能用变量代替它们。密钥将根据您在那里键入的内容进行命名,因此:

var foo = 'bar', obj = {foo: foo};
obj.foo; //bar
obj.bar; //undefined

相反,要设置动态密钥名称,您需要在创建对象后通过方括号语法设置密钥,并将密钥名称作为字符串传递:

var foo = 'bar', obj = {};
obj[foo] = foo;
obj.bar; //bar