Я пытаюсь написать функцию поиска, которая может выполнять поиск в массиве массивов объектов и возвращать любые объекты, которые включают в себя строку поиска в имени.
Проблема, с которой я столкнулся, состоит в том, что массив объектов может содержать массив потомков, а потомки также могут иметь массив потомков.Мне нужно динамически искать по всем возможным дочерним элементам и возвращать результаты
Я пытался сделать это с помощью Algolia, но поскольку структура файлов не будет постоянно обновляться, я чувствую, что было бы лучше использовать Array.include иличто-то похожее
Я пробовал следующую функцию, но не могу заставить ее работать
searchArray(subMenuItems, name) {
if (subMenuItems) {
for (let i = 0; i < subMenuItems.length; i++) {
if (subMenuItems.includes(name)) {
return subMenuItems[i];
}
const found = this.getSubItem(subMenuItems[i].children, name);
if (found) {
return found;
}
}
}
}
Вот пример массива объектов
[
[
{
"children":[
{
"children":[
{
"fileSize":"1.2MB",
"fileUrl":"https://linktoPDF.com",
"name":"GF Kitchen ",
"type":"file"
}
],
"name":"Ground Floor Kitchen",
"type":"folder"
}
],
"name":"House",
"type":"folder"
}
],
[
{
"fileSize":"1.3MB",
"fileUrl":"https://linktoPDF.com",
"name":"Introduction and Overview",
"type":"file"
},
{
"fileSize":"20MB",
"fileUrl":"https://linktoPDF.com",
"name":"VISUAL iPad Location Drawing",
"type":"file"
},
{
"fileSize":"1MB",
"fileUrl":"https://linktoPDF.com",
"name":"Control Surface",
"type":"file"
},
{
"fileSize":"1.3MB",
"fileUrl":"https://linktoPDF.com",
"name":"Scene",
"type":"file"
}
]
]