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

问题描述 投票:1回答:1

我对Javascript和React还是很陌生,所以请多多包涵。我的应用程序中有一个组件,该组件需要花费用户一定的时间,但是现在我想根据用户的输入来计算该用户每天的价格。我认为这可能是使用if循环的最简单方法,但是这样做有些不妥,而且我有些困惑。

我的尝试总体上还可以,还是需要一个单独的函数才能执行我想做的事情?

 onConfirm(hour, minute) {
    this.setState({ time: `Dauer: ${hour}:${minute}` });
    this.setState(if((hour) < 4){return price = `Preis: (${hour}* 1.5) €';}
      else {return price= 'Preis: 5.50 €';} );
    this.TimePicker.close();
  }
javascript react-native if-statement price
1个回答
1
投票

在对象文字中,您不能使用语句,只能使用表达式。 if是一个语句。

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

onConfirm(hour, minute) {
    this.setState({
        time: `Dauer: ${hour}:${minute}`,
        price: hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'
    });
    this.TimePicker.close();
}

上面的条件运算符表达式是:

hour < 4 ? `Preis: (${hour}* 1.5) €` : 'Preis: 5.50 €'

这是一个三元运算符(一个接受三个操作数的运算符:]

  1. 要测试的条件(hour < 4
  2. 用于评估条件是否为真的表达式(`Preis: (${hour}* 1.5) €`
  3. 用于评估条件是否为假的表达式('Preis: 5.50 €'

还请注意,您在模板文字上使用了'作为结束符(需要反引号。)>


¹“真实”和“虚假”-JavaScript隐式转换(或强制)值。当您在if或条件运算符中使用值作为测试时,JavaScript会将您提供的值转换为布尔值(truefalse)。转换为true的值称为“真实”值,转换为false的值称为“虚假”。伪造的值是NaNnullundefined0"",当然还有false(在浏览器中,document.all也是伪造的,因为我在我的书中解释了各种原因)。所有其他值都是真实的。

© www.soinside.com 2019 - 2024. All rights reserved.