У меня есть вложенный массив json, как показано ниже:
[
{
"filename":"Vegetable",
"children":[
{
"filename":"Juicy",
"children":[
{
"filename":"Tomato",
"type":"ts1"
},
{
"filename":"Carrot",
"type":"ts2"
},
,
{
"filename":"Onion",
"type":"ts3"
}
]
},
{
"filename":"Sweet",
"children":[
{
"filename":"Potato",
"type":"ts4"
},
{
"filename":"Water melon",
"type":"ts"
}
]
}
]
},
{ filename:"Fruits"..........
},....
]
Мне нужно отфильтровать массив так, чтобы выполнялись следующие условия:
- Имя файла = сочные данные (это может быть и Сладкий, я имею в виду, что 2-й уровень массива)
- Под этим будет текст фильтра, предположим, что это
't'
. Тогда он должен соответствовать именам файлов Tomato, Carrot
, поскольку он содержит t
Основы на условиях ниже ожидаемого результата
[
{
"filename":"Vegetable",
"children":[
{
"filename":"Juicy",
"children":[
{
"filename":"Tomato",
"type":"ts1"
},
{
"filename":"Carrot",
"type":"ts2"
}
]
},
{
"filename":"Sweet",
"children":[
{
"filename":"Potato",
"type":"ts4"
},
{
"filename":"Water melon",
"type":"ts"
}
]
}
]
},
{ filename:"Fruits"..........
},....
]
т. Е. Оно должно уничтожить
{ "filename":"Onion",
"type":"ts3"
}
Так как лук не содержит 't'.
Я пробовал с фильтром, отображать с использованием функций стрелок, но не работал, как ожидалось.
Я попробовал функцию filterby =(childname, filterText).filter =>{...}
Пожалуйста, ведите меня ...