如何筛选 Kendo 网格 (AngularJs) 中的对象数组?

How to filter an array of objects in Kendo Grid (AngularJs)?

我有一个这样的文档对象:

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

文档显示在 Kendo 网格中,其中一列供签名者使用。如何按姓名(以及按国家/地区,但不太相关)过滤签名者?如何筛选对象数组?

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

您可以创建 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);