如何将if语句与javascript或linq.js结合起来

时间:2015-05-28 15:59:14

标签: 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 个答案:

答案 0 :(得分:1)

您可以尝试简写代码

格式

variable = condition ? option 1 : option 2;

如果条件满足,那么将设​​置option1,否则将设置option2。

null,undefined,""将始终返回false。

试试这个

updatedSqft = e.values.sqft ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price ? e.values.price : e.model.price'

答案 1 :(得分:1)

updatedSqft = e.model.sqft == null ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price == null ? e.values.price : e.model.price;

它被称为 Conditional Ternary 运算符,请参阅link here。它并非特定于Javascript,您也可以使用其他语言执行此操作,例如C#

答案 2 :(得分:1)

对于大多数程序员来说,由于可读性,你所做的是最好的方法...... 但是,如果您想要更紧凑的代码,可以使用以下内容:

// 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的{p> Ternary Operator MDN Logical OR Operators