Как объединить 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

Другие вопросы по тегам