3

私はまだ CoffeeScript を学ぼうとしているので、このコードをより簡単な方法でどのように書くかを尋ねているだけです。

for member in draft.members
        if member.email is emailAddress then throw new Meteor.Error 500, "Cannot add member twice"
4

2 に答える 2

2

ステップ 1 は、読み取り可能にすることです。

for member in draft.members
    if member.email is emailAddress
        throw new Meteor.Error 500, 'Cannot add member twice'

ifを使用して式を削除できますwhen

for member in draft.members when member.email is emailAddress
    throw new Meteor.Error 500, 'Cannot add member twice'

忌まわしい長い行を書かないでください。if-expression は複数行にまたがることができることに注意してください。


完全な代替手段として、forUnderscore.js または jQuery を使用する場合は -expression を削除できます。Underscore.js を使用した例を次に示します (jQuery を使用する場合は、「 」を参照してください$.grep)。

if _.find(draft.members, (m) -> m.email is emailAddress)
    throw new Meteor.Error 500, 'Cannot add member twice'

IMO、for-expression withwhenが最も読みやすいです。

于 2013-04-20T11:06:17.770 に答える