Есть ли какой-то синтаксис для задания свойств на основе условия?
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 })
);