【问题标题】:JSON Data FilterJSON 数据过滤器
【发布时间】:2018-09-11 02:30:45
【问题描述】:

我正在使用PrimeNG TreeTable 来显示来自 JSON 文件的层次结构数据。我想在绑定到树表之前过滤这些数据。

以下是示例 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”节点绑定到树表。

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

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

【问题讨论】:

    标签: json primeng-treetable


    【解决方案1】:

    您可以使用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";
    });
    

    您只需要根据您的需要调整条件(取决于您的“Home”属性的深度)。如果您深入说四步,您可能会更好地通过适当的访问器函数通过感兴趣的属性(如["data", "data.children", ...])在循环中扭曲单独的过滤器指令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 2017-07-07
      • 1970-01-01
      相关资源
      最近更新 更多