【问题标题】:How to write boolean value without using if statements如何在不使用 if 语句的情况下编写布尔值
【发布时间】:2021-09-29 09:18:34
【问题描述】:

如何在不使用 if/else 语句的情况下在 javascript 中应用年龄折扣?

如果有人超过 21 岁,我想为服务申请折扣。所以我需要用 javascript 写,如果年龄超过 21 岁,则为真,如果年龄低于 21 岁,则为假。

如何在不使用 if/else 语句的情况下执行此操作?

【问题讨论】:

  • 是什么阻止了您使用 if/else 语句?如果您真的需要在没有 if/else 语句的情况下执行此操作,您可以尝试利用惰性求值来实现此目的
  • 使用三元运算符
  • logical operatorsconditional (ternary) operator。折扣也可以通过将某个值与适当的布尔值相乘来计算。到目前为止,您尝试过以下哪些选项?为什么if 语句不是一个选项?如果年龄正好是 21 岁,你会选择哪个布尔值?
  • (age > 21 && discount) || 0

标签: javascript boolean


【解决方案1】:

您可以使用ternary 运营商并获得折扣。并使用折扣进行进一步处理。

const getDiscount = age => age > 21 ? 5 : 0;

const price = 100;
let discountedPrice = (price - (getDiscount(22) * price / 100));
console.log('age > 21: ', discountedPrice);

discountedPrice = (price - (getDiscount(21) * price / 100));
console.log('age <= 21: ', discountedPrice);

【讨论】:

    【解决方案2】:

    要设置一个布尔值,你可以简单地执行一个逻辑测试:

    var discount = age > 21
    

    对于其他返回值,使用条件/三元运算符,语法如下:

    条件? exprIfTrue : exprIfFalse

    可以按照以下方式使用:

    var discount = age > 21 ? "you have a discount" : "you don't have a discount";
    

    查看 MDN(Mozilla 开发者网络)参考的更多信息:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-08
      • 2021-03-04
      • 2019-03-06
      • 1970-01-01
      • 2018-04-17
      • 2022-06-23
      • 2019-08-11
      相关资源
      最近更新 更多