首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Durandaljs:如何过滤ko.observablearray

Durandaljs:如何过滤ko.observablearray
EN

Stack Overflow用户
提问于 2013-03-26 16:10:38
回答 1查看 2.5K关注 0票数 0

我是刚接触过硬面包的

我想知道如何过滤ko.observablearray

定义(‘services/logger’,'data/data',‘function /func’,函数(记录器,data,func) { var ={ list: ko.observableArray([]) };返回vm;});

我想在列表中筛选一个项目,并将它显示在一个表中。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-26 16:51:26

剔除有未记录的实用程序函数,但它们存在于库中,以帮助筛选数组。

以下是处理数组的所有实用方法的完整列表:

代码语言:javascript
复制
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.unwrapObservable

Ryan写了一个很好的关于如何使用它们的blog post

方法1

下面是一个快速的入门示例:

代码语言:javascript
复制
var newList = ko.utils.arrayFilter(list(), function(item) {
   return item.price > 10;
});

这将创建一个价格超过10的商品的newList。然后您可以通过传递新的列表来更改当前的列表:

代码语言:javascript
复制
list(newList);

方法2

另一种选择是查找要删除的项。假设您要删除价格超过10的所有项目:

代码语言:javascript
复制
var rList = ko.utils.arrayFilter(list(), function(item) {
   return item.price > 10;
});

接下来,您可以调用:

代码语言:javascript
复制
list.removeAll(rList);

方法3

就像他们说的,有不止一种方法可以比喻剥猫皮:

代码语言:javascript
复制
list.remove(function(item) { return item.price > 10 });

就在这里..。

我相信还有更多的方法可以做到。如果您需要一些更高级的方法来过滤数组,我建议您看看underscore.js

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15641935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档