Javascript 使用if循环根据js中的输入计算价格

Javascript 使用if循环根据js中的输入计算价格,javascript,react-native,if-statement,price,Javascript,React Native,If Statement,Price,我对Javascript和React非常陌生,所以请容忍我。 我的应用程序中有一个组件,它从用户那里获取时间跨度,但现在我想计算用户必须支付的价格,这取决于他们的输入。我想这可能是使用if循环的最简单的方法,但是有点不对劲,我有点卡住了 我的尝试一般来说可以吗?还是需要一个单独的函数,我必须调用它才能完成我想做的事情 onConfirm(小时、分钟){ this.setState({time:`Dauer:${hour}:${minute}}}); this.setState(如果((小时)

我对Javascript和React非常陌生,所以请容忍我。 我的应用程序中有一个组件,它从用户那里获取时间跨度,但现在我想计算用户必须支付的价格,这取决于他们的输入。我想这可能是使用if循环的最简单的方法,但是有点不对劲,我有点卡住了

我的尝试一般来说可以吗?还是需要一个单独的函数,我必须调用它才能完成我想做的事情

onConfirm(小时、分钟){
this.setState({time:`Dauer:${hour}:${minute}}});
this.setState(如果((小时)<4){返回价格=`Preis:(${hour}*1.5)€`;}
其他{返回价格='Preis:5.50欧元';});
this.TimePicker.close();
}

在对象文本中,不能使用语句,只能使用表达式<代码>如果是一条语句

如果要在表达式中执行该操作,请使用条件运算符(
?:
),如下所示:

onConfirm(hour, minute) {
    this.setState({
        time: `Dauer: ${hour}:${minute}`,
        price: hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'
    });
    this.TimePicker.close();
}
onConfirm(小时、分钟){
这是我的国家({
时间:`Dauer:${hour}:${minute}`,
价格:小时<4?`Preis:(${hour}*1.5)€``Preis:5.50€'
});
this.TimePicker.close();
}
上面的条件运算符表达式为:

hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'
hour<4`Preis:(${hour}*1.5)€“Preis:5.50€”
它是一个三值运算符(接受三个操作数的运算符):

  • 要测试的条件(
    小时<4
  • 要计算条件是否为truthyü的表达式(
    `Preis:(${hour}*1.5)€`
  • 用于计算条件是否为falsyü的表达式(
    'Preis:5.50€
  • 还要注意的是,在模板文本上有一个结束符
    (需要一个倒勾)


    “truthy”和“falsy”-JavaScript隐式转换(或强制)值。当您使用值作为测试时,例如在
    if
    或条件运算符中,JavaScript会将您提供的值转换为布尔值(
    true
    false
    )。转换为
    true
    的值称为“truthy”值,转换为
    false
    的值称为“falsy”。falsy值为
    NaN
    null
    未定义的
    0
    ,当然还有
    false
    (在浏览器上,
    document。由于我在书中解释的各种原因,所有的
    都是虚假的)。所有其他值都是真实的。

    没有“if循环”。
    if
    语句不是循环(循环是类似
    for
    while
    等重复的东西)。