【问题标题】:How to filter an array of objects in Kendo Grid (AngularJs)?如何过滤剑道网格(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 函数并在客户端进行所有过滤,但我无法弄清楚。

【问题讨论】:

    标签: javascript angularjs kendo-ui kendo-grid


    【解决方案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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多