代码之家  ›  专栏  ›  技术社区  ›  Pushkar Rathod

JSON数据过滤器

  •  0
  • Pushkar Rathod  · 技术社区  · 6 年前

    PrimeNG TreeTable 显示JSON文件中的层次结构数据。我想在绑定到treetable之前过滤这些数据。

    下面是示例json数据。

    {
    "data":
    [
        {
            "data":{
                "name":"Documents",
                "size":"75kb",
                "type":"Folder"
            },
            "children":[
                {
                    "data":{
                        "name":"Work",
                        "size":"55kb",
                        "type":"Folder"
                    },
                    "children":[
                        {
                            "data":{
                                "name":"Expenses.doc",
                                "size":"30kb",
                                "type":"Document"
                            }
                        },
                        {
                            "data":{
                                "name":"Resume.doc",
                                "size":"25kb",
                                "type":"Resume"
                            }
                        }
                    ]
                },
                {
                    "data":{
                        "name":"Home",
                        "size":"20kb",
                        "type":"Folder"
                    },
                    "children":[
                        {
                            "data":{
                                "name":"Invoices",
                                "size":"20kb",
                                "type":"Text"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "data":{
                "name":"Pictures",
                "size":"150kb",
                "type":"Folder"
            },
            "children":[
                {
                    "data":{
                        "name":"barcelona.jpg",
                        "size":"90kb",
                        "type":"Picture"
                    }
                },
                {
                    "data":{
                        "name":"primeui.png",
                        "size":"30kb",
                        "type":"Picture"
                    }
                },
                {
                    "data":{
                        "name":"optimus.jpg",
                        "size":"30kb",
                        "type":"Picture"
                    }
                }
            ]
        }
    ]
    

    我只想将“Home”节点绑定到treetable。

    我尝试了以下链接,但没有得到结果。

    Filter json data in node js filter data in a JSON file

    1 回复  |  直到 6 年前
        1
  •  0
  •   TheDude    6 年前

    你需要一个 filter . 例如:

    var yourData = {
       "data": [
            //...
        ]
    };
    var res = [];
    
    Array.prototype.push.apply(res, yourData.data.filter(function (el) {
        return el.data.name === "Home";
    });
    
    Array.prototype.push.apply(res, yourData.data.children.filter(function (el) {
        return el.data.name === "Home";
    });
    

    你只需要根据自己的需要调整条件(取决于你的“家”属性有多深)。如果你说四步深,你可能会更好地扭曲单独的过滤器指令在一个循环中通过感兴趣的属性,如 ["data", "data.children", ...]