1

我有这个数据列表:

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/

4

1 回答 1

2

您需要定义您的GetCountas 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;
});

演示JSFiddle。

于 2013-06-23T12:06:05.620 回答