0

我正在使用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"
                }
            }
        ]
    }
]

}

我只想将“主”节点绑定到树表。

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

过滤节点中的json数据 js 过滤JSON文件中的数据

4

1 回答 1

0

您可以使用过滤器。例如像这样:

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", ...]使用适当的访问器函数。

于 2018-09-10T18:30:45.883 回答