2012-04-22 27 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尋找一個屬性q陣列orders上 - 所以orders.q是最有可能返回undefined,這確實不是一個函數。

你可能想通過_.pluck(orders, 'q'),它返回ordersq值的每個項目的陣列,以_.reduce。並仔細檢查你的圓括號:

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

OK我明白了。我會嘗試。但這是一個不錯的選擇嗎?沒有比這更簡單的了嗎? – 2012-04-22 13:54:34

+0

你可以去Underscore的[mixin目錄](https://github.com/documentcloud/underscore/wiki/Mixin-Catalog)或者編寫自己的mixin;但至少有一次[內置'sum'的拉取請求](https://github.com/documentcloud/underscore/pull/460)被拒絕。 – 2012-04-22 13:59:27

+0

謝謝,這個方法確實有效,但我想我會變成一個普通變量和一個foreach循環。我認爲我的最初方法會在陣列中多次出現。一次爲拔,一次爲減。 – 2012-04-22 14:06:46