如何将Javascript符号设置为对象键?

时间:2019-09-29 17:30:12

标签: javascript sequelize.js javascript-objects

我有一种独特的情况,我需要使用Javacript符号作为对象的键。这是必要的,因为为了符合Sequelize的文档,在某些情况下,我们需要具有以下内容:

const where = {
    cost: {
        [Op.gt]: 1000,
        [Op.lt]: 2000
    }
}

[Op.gt][Op.lt]都是有助于查询的Javascript符号。代码块将查询名为cost的属性大于1000但小于2000的位置。但是当我尝试以编程方式设置键/值对时:

where['cost'][[Op.gt]] = 1000;

我收到以下错误:

  

无法将符号值转换为字符串

这是一个动态对象,因此我不能将符号硬编码到where查询中,因为下一个用户可能不需要通过这些参数查询。我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:1)

删除符号周围的1个括号,您会没事的:

F5

where['cost'][Op.gt] = 1000; 表示您正在使用obj[Op.gt]名称访问对象属性。 Op.gt表示您正在访问名称等于字符串化数组obj[[Op.gt]]的对象属性。类似于以下内容:

[Op.gt]