是否有一些根据条件设置属性的语法?
data: {
userId: 7,
actionId: 36,
express: (myCondition ? true : null) // does not work
}
我希望 express
可以被设定一个值或者不设定(即不存在名为express
的键),定义后不需要额外的语句。我知道可以将它用作布尔值,但接收方正在使用 isset()
检查,我想知道是否可以避免修改它。
编辑: 看起来没有直接解决所述问题的解决方案。以下是接近的建议:
JSON.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(我的前同事):
eval("data = {userId: 7, actionId: 36 " + (myCondition ? ", express: true}" : "}"))
条件定义(不太清楚如何标记这个):
data = (
(myCondition && { userId: 7, actionId: 36, express: true }) ||
(!myCondition && { userId: 7, actionId: 36 })
);
undefined
,还是该属性根本不存在? - jbabey