如何过滤剑道网格(AngularJs)中的对象数组?

Posted

技术标签:

【中文标题】如何过滤剑道网格(AngularJs)中的对象数组?【英文标题】:How to filter an array of objects in Kendo Grid (AngularJs)? 【发布时间】:2020-10-27 00:27:37 【问题描述】:

我有一个这样的 Document 对象:

"id": 1, "annotation": "some text", "signers": [ "id": 32, "name": "Bob", "address": "country": "USA", 
 "id": 44, "name": "Bill", "address": "country": "Canada"]

文档显示在剑道网格中,其中一列用于签名者。如何按姓名(也可以按国家/地区,但这不太相关)过滤签名者?如何过滤对象数组?

我一直在尝试弄清楚如何编写自定义 filter 函数并在客户端进行所有过滤,但我无法弄清楚。

【问题讨论】:

【参考方案1】:

您可以创建一个名称或国家/地区的Set 以搜索并在Array#filter 的回调中调用Set#has

let doc = "id": 1, "annotation": "some text", "signers": [ "id": 32, "name": "Bob", "address": "country": "USA", 
 "id": 44, "name": "Bill", "address": "country": "Canada"];
const names = new Set(["Bob", "Joe"]);
doc.signers = doc.signers.filter((name)=>names.has(name));
console.log(doc);

【讨论】:

以上是关于如何过滤剑道网格(AngularJs)中的对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

剑道网格自定义过滤器

如何使用为计算列指定的过滤器过滤剑道网格数据

过滤后如何在剑道 ui 网格上显示水平滚动条?

剑道网格中的日期时间过滤器

如何使用虚拟化远程数据过滤剑道网格上的整个数据源

如果启用了无限滚动,如何防止剑道网格两次加载数据?