[英]add key value to object conditionally javascript
I have an empty object like this我有一个像这样的空 object
let queryParams = {}
I want to add some objects conditionally to this:我想有条件地添加一些对象:
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+ '%' } }
]}
If the two conditions are true the final object look like this:如果这两个条件都为真,那么最终的 object 如下所示:
{
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+ '%' } }
]
}
My solution is to put this individual object into array and build the object in aloop but I think its a bad way.我的解决方案是将这个单独的 object 放入数组中并在循环中构建 object 但我认为这是一个不好的方法。 Is there any other way to do this?
有没有其他方法可以做到这一点?
If you want to add a new key value pair to an object you can simply do so by assigning value object.newkey as if the object already had that key. 如果要向对象添加新的键值对,只需分配值object.newkey即可,就像对象已经具有该键一样。
let queryParams = {};
if(/*condition*/){
queryParams.adminapproval=req.body.approvalStatus;
}
if(/*condition2*/){
queryParams.key1=value1;
queryParams.key2=value2;
}
Hope this is what you were looking for. 希望这就是您想要的。
let queryParams = {
...status && {
adminapproval: req.body.approvalStatus,
},
...type && {
$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+ '%' } }
]
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.