Есть ли какой-либо синтаксис для задания свойств на основе условия?Условное задание свойства объекта
data: {
userId: 7,
actionId: 36,
express: (myCondition ? true : null) // does not work
}
Я хочу express
быть либо установлен на значение или не установлен вообще (то есть, не должно быть никакого ключа с именем express
), и без дополнительных заявлений после определения. Я знаю, что могу использовать его как логическое, но принимающая сторона использует проверку isset()
, и мне интересно, не могу ли я ее изменить.
Edit: Кажется, нет прямого решения проблемы, как указано. Вот близкие предложения:
JSON.stringify (Chris Кессель, 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
Я имею в виду, что собственность не должна существовать вообще. – mcmlxxxvi
@mcmlxxxvi Я думаю, вы имели в виду свойства объекта, а не свойства JSON. В вашем вопросе нет JSON. – Paulpro