我是刚接触过硬面包的
我想知道如何过滤ko.observablearray
定义(‘services/logger’,'data/data',‘function /func’,函数(记录器,data,func) { var ={ list: ko.observableArray([]) };返回vm;});
我想在列表中筛选一个项目,并将它显示在一个表中。
谢谢
发布于 2013-03-26 16:51:26
剔除有未记录的实用程序函数,但它们存在于库中,以帮助筛选数组。
以下是处理数组的所有实用方法的完整列表:
ko.utils.arrayFilter
ko.utils.arrayFirst
ko.utils.arrayForEach
ko.utils.arrayIndexOf
ko.utils.arrayMap
ko.utils.arrayPushAll
ko.utils.arrayRemoveItem
ko.utils.compareArrays
ko.utils.unwrapObservableRyan写了一个很好的关于如何使用它们的blog post。
方法1
下面是一个快速的入门示例:
var newList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});这将创建一个价格超过10的商品的newList。然后您可以通过传递新的列表来更改当前的列表:
list(newList);方法2
另一种选择是查找要删除的项。假设您要删除价格超过10的所有项目:
var rList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});接下来,您可以调用:
list.removeAll(rList);方法3
就像他们说的,有不止一种方法可以比喻剥猫皮:
list.remove(function(item) { return item.price > 10 });就在这里..。
我相信还有更多的方法可以做到。如果您需要一些更高级的方法来过滤数组,我建议您看看underscore.js
https://stackoverflow.com/questions/15641935
复制相似问题