【问题标题】:how to combine if else statements with javascript or linq.js如何将 if else 语句与 javascript 或 linq.js 结合使用
【发布时间】:2015-05-28 15:59:13
【问题描述】:

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

【问题讨论】:

  • 你到底想要什么?

标签: javascript linq.js


【解决方案1】:
updatedSqft = e.model.sqft == null ? e.values.sqft : e.model.sqft;
updatedPrice = e.values.price == null ? e.values.price : e.model.price;

它称为条件三元运算符,请参阅link here。它不特定于 Javascript,您也可以使用其他语言来执行此操作,例如 C#

【讨论】:

    【解决方案2】:

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

    // 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;
    

    Ternary Operator 在 MDN
    Logical OR Operators 在 MDN

    【讨论】:

      【解决方案3】:

      你可以试试简写代码

      格式

      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'
      

      【讨论】:

        猜你喜欢
        • 2018-12-23
        • 2018-03-27
        • 1970-01-01
        • 2021-09-11
        • 2016-06-21
        • 2019-04-09
        • 2011-06-09
        • 1970-01-01
        • 2015-05-16
        相关资源
        最近更新 更多