0

私が次のものを持っているとしましょう:

scoringObject = 
  a : -1
  b : 0
  c : 1
  d : 2

resultsArray = ['a','c','b','b','c','c','d']

Coffescript を使用して、aggregateScore (例では +4) を計算するにはどうすればよいですか?

4

2 に答える 2

1

あなたの例はそのままではあまり意味がないので、私はあなたが持っているものは次のとおりであると仮定します:

resultsArray = ['a','c','b','b','c','c','d']

あなたのscoringObject投稿から。次に、次のように計算できます。

aggregateScore = 0
aggregateScore += scoringObject[k] for k in resultsArray
# => 4

間違った想定をした場合はお知らせください。

于 2012-09-24T12:38:32.650 に答える
0

ECMAScript 5 の機能を使用してもかまわない場合は、Array::reduceこの種のことを非常に簡潔に表現できます。

aggregateScore = resultsArray.reduce ((sum, x) -> sum + scoringObject[x]), 0

( のパラメータの順序がかなり悪いと思いますreduce。初期値を最初に、縮小関数を最後にする必要があります)

Underscore.js、クロスブラウザーの reduce 実装を提供します:)

于 2012-09-24T16:36:07.030 に答える