我有一个像这样的空对象
let queryParams = {}
我想有条件地添加一些对象:
if(status){
//add this
adminapproval:req.body.approvalStatus
}
if(type){
//add this
$or: [
Sequelize.where(Sequelize.fn('concat_ws', Sequelize.col('firstName'), ' ', Sequelize.col('lastName')), {
$like: '%' + keyword + '%'
}),
{ email: { $like: '%' + keyword + '%' } },
{ company: { $like: '%' + keyword+ '%' } },
{ mobileNo: { $like: '%' + keyword+ '%' } },
{ city: { $like: '%' + keyword+ '%' } },
{ country: { $like: '%' + keyword+ '%' } }
]}
如果两个条件都为真,则最终对象如下所示:
{
adminapproval:req.body.approvalStatus,
$or: [
Sequelize.where(Sequelize.fn('concat_ws', Sequelize.col('firstName'), ' ', Sequelize.col('lastName')), {
$like: '%' + keyword + '%'
}),
{ email: { $like: '%' + keyword + '%' } },
{ company: { $like: '%' + keyword+ '%' } },
{ mobileNo: { $like: '%' + keyword+ '%' } },
{ city: { $like: '%' + keyword+ '%' } },
{ country: { $like: '%' + keyword+ '%' } }
]
}
我的解决方案是将这个单独的对象放入数组并在aloop中构建对象,但我认为这是一个糟糕的方法。还有其他办法吗?
答案 0 :(得分:1)
如果要向对象添加新的键值对,可以通过赋值object.newkey来完成,就像对象已经拥有该键一样。
let queryParams = {};
if(/*condition*/){
queryParams.adminapproval=req.body.approvalStatus;
}
if(/*condition2*/){
queryParams.key1=value1;
queryParams.key2=value2;
}
希望这就是你要找的东西。