是否有一些语法可以根据条件设置属性?
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 })
);
原文由 mcmlxxxvi 发布,翻译遵循 CC BY-SA 4.0 许可协议
像这样做 :
当您将对象 字符串 化为 JSON 时,不会写入值为
undefined
的属性。编辑:从评论看来,实际上没有涉及 JSON。 OP 正在使用
$.ajax
所以$.param
可能被使用。$.param
不幸的是,确实为值为undefined
的属性创建了一个条目。因此,如果没有任何补充代码行,可能就没有解决方案。