我使用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。
我已经尝试了以下链接,但没有得到结果。
发布于 2018-09-11 02:30:46
你可以使用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", ...] )中扭曲单独的过滤器指令。
https://stackoverflow.com/questions/52262156
复制相似问题