Как объединить if if заявления с javascript или linq.js
Каков наилучший способ объединить это, используя javascript или linq.js? Я пытаюсь сократить то, что я сделал, это работает правильно, но я пытаюсь быть более эффективным с меньшим количеством кода.
if (e.values.sqft == null) {
updatedSqft = e.model.sqft
}
else {
updatedSqft = e.values.sqft
}
if (e.values.price == null) {
updatedPrice = e.model.price
}
else {
updatedPrice = e.values.price
}
3 ответа
updatedSqft = e.model.sqft == null ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price == null ? e.values.price : e.model.price;
Его называют условным или троичным оператором, см. Ссылку здесь. Это не относится к Javascript, вы также можете сделать это на других языках, таких как C#
,
Вы можете попробовать короткий код
формат
variable = condition ? option 1 : option 2;
Если условие будет сохранено, то будет установлена опция 1, иначе будет установлена опция 2.
null,undefined,""
всегда будет возвращать false.
Попробуй вот так
updatedSqft = e.values.sqft ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price ? e.values.price : e.model.price'
Для большинства программистов то, что вы сделали, является лучшим способом из-за читабельности...
Но если вы хотите более компактный код, вы можете использовать что-то вроде следующего:
// Ternary operator
updatedSqft = e.values.sqft ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price ? e.values.price : e.values.price;
// Logical OR
updatedSqft = e.values.sqft || e.model.sqft;
updatedPrice = e.values.price || e.model.price;
Тройной Оператор в МДН
Операторы логического ИЛИ в MDN