【发布时间】:2015-12-28 05:39:57
【问题描述】:
tl;dr: => 做什么?
我刚刚解决了一个关于 codewars 的问题,在查看了其他人对这个问题的常见反应之后,我一直看到这个:=>
问题如下:
您有箭筒,但有些已损坏。箭袋包含带有可选范围信息的箭头(不同类型的目标定位在不同的范围内),因此每个项目都是一个箭头。 你需要确认你还有一些好的,以便为战斗做准备。下面是一个示例数组,它是箭袋。
anyArrows([
{range: 5},
{range: 10, damaged: true},
{damaged: true}
])
如果箭筒中的箭头没有损坏状态,则表示它是新的。
这是我看到的一个例子,它返回真或假,取决于箭袋中是否有未损坏的箭头:
function anyArrows(arrows){
return arrows.some(a => !a.damaged);
}
现在,这比我的代码短得多!我的更基本:
function anyArrows(arrows){
for ( var i = 0 ; i < arrows.length ; i++ ){
if ( arrows[i].damaged === false ) { return true; }
else if (arrows[i].damaged === true) { return false; }
else if (arrows[i].range === 0) { return false }
else { return true; }
}
if (arrows.length === 0) return false;
}
同样,问题是:=> 在这种情况下和一般情况下会做什么?
【问题讨论】:
-
这是 ES6 中新的短函数语法。例如。
function(x){return x.Id;}变为x => x.Id。它类似于 C# 中的 lambda 表达式。 -
这对我来说似乎是一个 LINQ 查询,基本上他们正在做的是,返回
a // is an object from arrows是!damaged的箭头。看看这个developer.mozilla.org/en/docs/Web/JavaScript/Reference/…