filter recursive function

This commit is contained in:
2020-06-08 14:44:09 +02:00
parent 01d90058ab
commit 84ef0f7bc7
4 changed files with 158 additions and 12 deletions

View File

@ -100,3 +100,50 @@ test ('check isnil with nan', (t) => {
test ('check isnil with int', (t) => {
t.is (util.is_nil (parseInt ('42')), false);
});
test ('recursive filter', (t) => {
const raw = [
{ name: 'include_foo' },
{
name: 'include_bar',
children: [
{ name: 'foo' },
{ name: 'bar' }
]
},
{
name: 'baz',
children: [
{ name: 'include_foo' },
{ name: 'bar' }
]
},
{
name: 'barbaz',
children: [
{ name: 'foo' },
{ name: 'bar' }
]
}
];
const filtered = [
{ name: 'include_foo' },
{
name: 'include_bar',
children: [
{ name: 'foo' },
{ name: 'bar' }
]
},
{
name: 'baz',
children: [ { name: 'include_foo' } ]
}
];
const filter = {
field: 'name',
filter: /^include_.*/ui
};
const result = util.recursive_filter (raw, [ filter ]);
t.deepEqual (filtered, result);
});