2012-04-22 6 views
1

underscore.jsはページ上のテンプレートを処理していますが、私のページにもjQueryがあります。テンプレート(jQueryまたはUnderscore)に配列値の合計値を表示

私は次のようになり、アレイがあります。ページに今すぐ

orders = [{q:5},{q:5},{q:5},{q:5},{q:5}]; 

を私が印刷されたQの合計をしたいが、私はそれを動作させることはできません。

多くのコードスニペットを試しましたが、どれも動作していないようです。私が思っていたのはこれです。

<td><% print(_.reduce(orders.q), function(memo, num){ return memo + num; }, 0) %></td> 

これはアンダースコア自体のページからです。

コードのこの作品は、私を与える:

undefined is not a function; 

答えて

3

orders.qは、アレイordersのプロパティqを探します - そうorders.qは、最も可能性の高い確か関数ではありませんundefinedを、返却されます。

はおそらく_.reduceに、orders内の各アイテムのqの値の配列を返します_.pluck(orders, 'q')を渡したいです。括弧を再確認してください:

_.reduce(orders.q, function(memo, num){ return memo + num; }, 0) 
+0

わかりました。私はそれを試みます。しかし、これは良い選択ですか?これ以上の単純化はありませんか? –

+0

Underscoreの[mixinカタログ](https://github.com/documentcloud/underscore/wiki/Mixin-Catalog)にアクセスするか、「sum」のための独自のミックスインを書くことができます。しかし、少なくとも拒否された(組み込み 'sum'のための1つのプルリクエスト)(https://github.com/documentcloud/underscore/pull/460)がありました。 –

+0

ありがとう、メソッドは動作しますが、私は通常の変数とforeachループに変更すると思います。私は自分の初歩的な方法がアレイを通って何度も繰り返すと思う。拍手のために1回、減らすために1回。 –

関連する問題