如何筛选 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);
我有一个这样的文档对象:
{"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);