如何解析对象数组,因此我将得到包含“ ild”的“ text”的所有元素的数组。
这是一个示例数组:
public data: any[] = [
{
treeViewKey:0,
id: 1,
text: 'Root Node 1'
}, {
treeViewKey:1,
id: 2,
text: 'Root Node 2'
}, {
treeViewKey:1_0,
id: 3,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:1_1,
id: 4,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:1_2_0,
id: 5,
parentId: 4,
text: 'Child node of Root Node 2'
}
];
我应该以3个元素结尾。在javascript或打字稿中实现该目标的最佳方法是什么?
最终结果应该是:
[
{
treeViewKey:1_0,
id: 3,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:1_1,
id: 4,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:1_2_0,
id: 5,
parentId: 4,
text: 'Child node of Root Node 2'
}
]
答案 0 :(得分:3)
如果您正在寻找所有的孩子,那么拥有更好的财产就可以得到他们。
那就是parentId
。如果指定了parentId
,则它们是子级。
因此,请过滤数据输入,以查找具有指定的parentId
属性的数据输入。
在下面,也有根据您的要求在文本中查找“ ild”的情况。
const data = [
{
treeViewKey:0,
id: 1,
text: 'Root Node 1'
},
{
treeViewKey:1,
id: 2,
text: 'Root Node 2'
},
{
treeViewKey:'1_0',
id: 3,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:'1_1',
id: 4,
parentId: 2,
text: 'Child node of Root Node 2'
}, {
treeViewKey:'1_2_0',
id: 5,
parentId: 4,
text: 'Child node of Root Node 2'
}
];
// filter the elements with parentId property
console.log(data.filter(el => el.parentId));
// filter the elements with 'ild' string in text property
console.log(data.filter(el => el.text.includes('ild')));
答案 1 :(得分:0)
类似的东西:
const elements = data.filter(item => item.parentId);