2013-06-23 179 views
1

我DATAS名單:如何獲得總計數在observableArray

var data = [ 
{"AMSnack": true, "PMSnack": false}, 
{"AMSnack": true, "PMSnack": false}, 
{"AMSnack": true, "PMSnack": false}, 
{"AMSnack": fale, "PMSnack": true}, 
{"AMSnack": true, "PMSnack": false}]; 

我想獲得總AMSnack的是真實的,也是如此的PMSnack。 如何獲得observableArray內的總數?

這裏是完整的代碼http://jsfiddle.net/comfreakph/gtPGz/5/

+0

你的問題不明確。你想在樣本中看到什麼樣的結果? 5因爲有5個是真的,0是因爲沒有AMSnack和PMSnack也是真的?或者4爲AMSnack和1爲PMSnack? – nemesv

+0

我想獲得真假的總數。但似乎你已經發布了我想要的答案。謝謝 – comfreakph

回答

2

您需要定義您的GetCountko.computed(見doc),您可以使用ko.utils.arrayFilter(見doc)函數來過濾陣列。

爲了讓您只需要返回過濾陣列的length計數:

self.GetCount = ko.computed(function(){ 
    return ko.utils.arrayFilter(self.Data(), function(item) { 
     //return item.AMSnack || item.PMSnack; // AMSnack or PMSnack true 
     return item.AMSnack && item.PMSnack; // AMSnack and PMSnack true 
     }).length; 
}); 

演示JSFiddle.