我有这个数据列表:
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中的总数?
答案 0 :(得分:2)
您需要将GetCount
定义为ko.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;
});