【问题标题】:How can I use a variable for a key name?如何使用变量作为键名?
【发布时间】:2014-01-01 22:39:27
【问题描述】:

我有这个 jQuery:

$.post(document.URL, {'blanks':word});  
$.post(document.URL, {'blanks':{ word :{'time':T}}});

这是我在终端登录时的结果:

{ blanks: 'plotted' }
{ blanks: { word: { time: '1386984059685' } } }

为什么变量word 在第二个jQuery 语句中没有变化?我认为这与将单引号添加到键名有关,但我无法解决。

我用

解决了我的问题
$.post(document.URL, {'blanks':{'word':word, 'time':T}});

导致

{ blanks: { word: 'plotted', time: '1386984409890' } }

但是我很好奇为什么当它是键时变量没有改变,是否有办法做到这一点?

【问题讨论】:

标签: jquery json post key


【解决方案1】:

如果您提前定义数据,您可以这样做:

var someVar = 'foo';
var data = {};

data[someVar] = 'My key is "foo"';

console.log(data.foo);
console.log(data[someVar]);
console.log(data['foo']);

所有这些都会记录My key is "foo"

当您创建像这样的对象时{prop: 'value'} 属性名称不能是变量 - 您输入的就是您得到的。引号是可选的,除非您使用会引发错误的字符。使用点符号访问属性也是如此:myObj.propName.anotherPropName

括号表示法更灵活,因为您可以访问其他无效的属性名称,也可以使用变量来设置和访问属性。

var myObj = {
  '@##%$#%%^&%' : 'some value'
};
console.log(myObj['@##%$#%%^&%']); //logs "some value"

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2019-12-23
    • 2010-12-05
    相关资源
    最近更新 更多