使用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
}
答案 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