是否有基于条件设置属性的语法?
data: {
userId: 7,
actionId: 36,
express: (myCondition ? true : null) // does not work
}
我希望将 express设置为一个值或者根本不设置(即,不应该有名为 express的键) ,并且在定义之后没有额外的语句。我知道我可以使用它作为一个布尔值,但接收端使用的是 isset()检查,我想知道我是否可以避免修改它。
编辑 : 似乎没有直接的解决方案,如上所述。以下是近似的建议:
Stringify (Chris Kessel,dystroy) :
var json = JSON.stringify( {
data: {
userId: 7,
actionId: 36,
express: (myCondition ? true : null)
}
});
一个匿名函数 (Paulpro) :
var data = new function(){
this.userId = 7;
this.actionId = 36;
myCondition && (this.express = true);
};
一个额外的语句 (x4rf41) :
data: {
userId: 7,
actionId: 36
}
if(myCondition) data["express"] = true;
伊瓦尔(我以前的一个同事) :
eval("data = {userId: 7, actionId: 36 " + (myCondition ? ", express: true}" : "}"))
条件定义 (不知道如何给这个定义贴标签) :
data = (
(myCondition && { userId: 7, actionId: 36, express: true }) ||
(!myCondition && { userId: 7, actionId: 36 })
);