我是java脚本中Arrow函数的新手。任何人请告诉我 是否可以使用箭头函数在java脚本中使用if else条件。
答案 0 :(得分:13)
箭头函数可以简单地看作是常规函数的简洁版本,除了db.games.aggregate([
{
$project: {
scores: [
{ name: '$winner', wins: { $literal: 1 }, losses: { $literal: 0 }, tied: { $literal: 0 } },
{ name: '$loser', wins: { $literal: 0 }, losses: { $literal: 1 }, tied: { $literal: 0 } },
{ name: '$player1', wins: { $literal: 0 }, losses: { $literal: 0 }, tied: { $cond: [ "$tied", 1, 0 ] } },
{ name: '$player2', wins: { $literal: 0 }, losses: { $literal: 0 }, tied: { $cond: [ "$tied", 1, 0 ] } }
]
}
},
{
$unwind: '$scores'
},
{
$group: {
_id: "$scores.name",
wins: { $sum: "$scores.wins" },
losses: { $sum: "$scores.losses" },
tied: { $sum: "$scores.tied" }
}
}
])
是隐含的(在其他一些您可以阅读的关于here的细微内容中)。使用if / else的一个好方法是使用ternary。采取这个常规功能:
return
使用三元组的箭头函数中的等价物是:
function(a){
if(a < 10){
return 'valid';
}else{
return 'invalid';
}
}
答案 1 :(得分:11)
正如您可能发现的那样,没有大括号的箭头函数的主体只能是单个表达式,因此如果不允许使用语句。
带括号的箭头函数允许使用语句,如下所示:
const func = () => {
if (...) ...
}
答案 2 :(得分:3)
对于单个“ if”条件,您可以使用快捷方式语法。
想象一下,仅当> 10时才需要执行doThis()函数:
a => a > 10 && doThis()
答案 3 :(得分:2)
这是我发现有用的一种方法
此常规功能
function(a){
if(a < 10){
return 'valid';
}
}
等效的箭头功能是
a => {
if(a < 10){
return 'valid';
}
}
在React项目中对数组数据进行条件映射时,我发现这很有用。下面的例子
function App(){
const items = useFetch()
return (
<div>
{items.map( (item) => {
if (item[1]==='something'){
return (
<li>{item[2]}</li>
)
}
})}
</div>
)
}
答案 4 :(得分:0)
您需要了解箭头功能的运作方式。
var foo = (value) => value;
与:
相同var foo = (value) => {
return value;
}
与以下内容相同:
function foo(value) {
return value;
}
因此,您可以看到将if-else放入箭头函数中没有什么特别之处。