26

可能重复:
如何在 javascript 中将字符串转换为对象的字段名称

我可以做这个:

var objPosition = {};
objPosition.title = "whatever";

但是我正在动态地获取“标题”,并且想要使用大约六个这样获得的字符串来将六个属性分配给对象。我试过 eval 和其他几个似乎有同样问题的方案,但到目前为止都是空的。

我有:

var txtCol = $(this).text();
txtCol = $.trim(txtCol);

我希望 txtCol 的值是一个属性名称。

有任何想法吗?

4

4 回答 4

58

使用['propname']

objPosition[txtCol] = "whatever";

演示:http: //jsfiddle.net/hr7XW/

于 2012-08-28T17:53:20.967 回答
13

使用括号表示法objPosition['title'] = "whatever";

所以:

var objPosition = {}, ttl = 'title';
objPosition[ttl] = 'whatever'; 

[编辑 11/2019:es20xx]

let objPosition = {};
const ttl = 'title';
// [...]
objPosition = {...objPosition, [ttl]: "whatever"};
console.log(objPosition);

于 2012-08-28T17:53:36.833 回答
4

你也可以像这样设置对象的键

var property = "title"
objPosition[property] = "something";
于 2012-08-28T17:53:36.363 回答
3

像这样使用括号表示法:

objPosition["title"] = "Whatever";
于 2012-08-28T17:54:00.920 回答