使用if循环根据js中的输入计算价格
Use if-loop to calculate price depending on the input in js
我是 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();
}
在对象字面量中,不能使用语句,只能使用表达式。 if
是一个语句。
如果要在表达式中执行 either/or 逻辑,请使用 条件运算符 (? :
),如下所示:
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 €'
这是一个三元运算符(接受三个操作数的运算符):
- 要测试的条件(
hour < 4
)
- 用于评估条件是否为真的表达式¹ (
`Preis: (${hour}* 1.5) €`
)
- 判断条件是否为假的表达式¹ (
'Preis: 5.50 €'
)
另请注意,您在模板文字上有一个结束 '
(需要反引号)。
¹ "truthy" 和 "falsy" - JavaScript 隐式转换(或强制)值。当您将值用作测试时,例如在 if
或条件运算符中,JavaScript 会将您提供的值转换为布尔值(true
或 false
) .转换为 true
的值称为 "truthy" 值,转换为 false
的值称为 "falsy." 伪值是 NaN
、null
、 undefined
、0
、""
,当然还有 false
(在浏览器上,document.all
也是假的,原因有很多,我在书中解释过)。所有其他值都是真实的。
我是 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();
}
在对象字面量中,不能使用语句,只能使用表达式。 if
是一个语句。
如果要在表达式中执行 either/or 逻辑,请使用 条件运算符 (? :
),如下所示:
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 €'
这是一个三元运算符(接受三个操作数的运算符):
- 要测试的条件(
hour < 4
) - 用于评估条件是否为真的表达式¹ (
`Preis: (${hour}* 1.5) €`
) - 判断条件是否为假的表达式¹ (
'Preis: 5.50 €'
)
另请注意,您在模板文字上有一个结束 '
(需要反引号)。
¹ "truthy" 和 "falsy" - JavaScript 隐式转换(或强制)值。当您将值用作测试时,例如在 if
或条件运算符中,JavaScript 会将您提供的值转换为布尔值(true
或 false
) .转换为 true
的值称为 "truthy" 值,转换为 false
的值称为 "falsy." 伪值是 NaN
、null
、 undefined
、0
、""
,当然还有 false
(在浏览器上,document.all
也是假的,原因有很多,我在书中解释过)。所有其他值都是真实的。