2015-09-30 9 views
5

tl; dr: ne yapar => yapar?JavaScript'te ne demek =>? (daha büyük eşittir)

Ben sadece bu görmeye devam codewars ve soruna başkalarının ortak tepkiler baktıktan sonra bir problem çözme bitirdim: =>

sorun aşağıdaki gibidir:

Bir titreme var oklar, ama bazıları hasar gördü. Titreme, isteğe bağlı aralık bilgisine sahip okları içerir (farklı hedef türleri farklı aralıklarda konumlandırılır), böylece her öğe bir okdur. Savaş için hazırlanabilmeniz için bazı iyi kaliteleriniz olduğunu doğrulamanız gerekir. Aşağıda, okların titizliği olan örnek bir dizidir.

anyArrows([ 
{range: 5}, 
{range: 10, damaged: true}, 
{damaged: true} 
]) 

Titizlikteki bir okda hasarlı bir durum yoksa, yeni demektir.

Bu titreme hasar görmemiş bir ok varsa bağlı olarak doğru veya yanlış döndürür gördüğüm bir örnektir:

Şimdi
function anyArrows(arrows){ 
    return arrows.some(a => !a.damaged); 
} 

, bu benim kod çok daha kısaydı! Mine çok daha temel:

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; 
} 

Yine de, soru şudur: => bu durumda ve genel olarak ne yapar? Ok işlev parametrelerini gövdeden ayıran ES2015 sözdizimi

+1

[Ok fonksiyonları] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)? –

+0

ES6'daki yeni kısa işlev sözdizimi. Örneğin. 'function (x) {return x.Id;}' olur x => x.Id'. C# 'daki lambda ifadelerine benzer. –

+0

Bu bana bir LINQ sorgusu gibi gözüküyor, temelde yaptıkları şey, 'bir // oklardan gelen bir nesne olduğu yerde oklar' 'hasarlı '. Bu https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some adresine bir göz atın. – Canvas

cevap

8

(params) => { /* body */ }.

ArrowFunction : ArrowParameters => ConciseBody