0

我正在尝试这样做:

var sortAfter = req.query.sortAfter || '_id';
var ascending = req.query.direction || -1;
var sorted = {sortAfter: ascending};

但是 console.log(sorted) 输出以下对象:

{ sortAfter: -1 }

这就像第一个变量没有在对象创建中使用......

问题:如何让对象由两个变量组成,而不是一个变量和一个固定字符串?

4

3 回答 3

2

试试这种方式:

var sortAfter = req.query.sortAfter || '_id';
var ascending = req.query.direction || -1;
var sorted = {};
sorted[sortAfter] = ascending;
于 2013-10-23T08:24:10.670 回答
1

在对象文字中,键始终是文字,它们永远不是变量。如果要设置动态对象键,则必须这样做:

var sorted = {};
sorted[sortAfter] = ascending;
于 2013-10-23T08:21:46.130 回答
1

使用下标/括号表示法:

var sorted = {};
sorted[sortAfter] = ascending;

下标运算符会将其操作数转换为字符串,

于 2013-10-23T08:21:51.220 回答